Это механизм, позволяющий одному веб-серверу (имеющему один IP-адрес) обслуживать несколько (и часто довольно много) сайтов с разными
доменными именами. Т.е. для каждого сайта хостинг-провайдером создается как бы отдельный "виртуальный сервер" - определяются его имя,
параметры, корневые папки для html и CGI и т.д.
При просмотре сайта браузер обращается к серверу, передает ему в числе прочих параметров запроса имя сайта, к которому он фактически
обращается, и "физический" сервер использует параметры "виртуального" сервера этого сайта.
Единственным принципиальным недостатком виртуального хостинга (на практике - не существенным) является
невозможность обратиться к сайту по IP-адресу - без указания имени сайта сервер просто не будет знать, к какому сайту, расположенному
на нем, идет обращение - т.к. у них всегда один IP адрес. В такой ситуации сервер часто выдает "сайт по умолчанию".