Причина 1 :
Начиная с HTTP/1.1 (лет 15 назад) появилась поддержка мультихост серверов. На одном IP могут располагаться сотни сайтов - браузер, обращаясь к серверу по IP, обязан добавить в заголовки HTTP-запроса строку "Host:", которая позволит понять, к какому конкретно сайту Вы идете.
В настоящее время мультихост является стандартом и нормой и подключение по IP является скорее исключением, вернее доброй волей хостера, который в отсутствие поля "Host:" выбирает за Вас какое из доменных имен предоставлять по умолчанию на данном IP.
Причина 2:
Все больше сайтов переходят на HTTPS. Для таких серверов соответствие доменного имени, вписанного в сертификат, уже критично заголовку "Host:", т.к. мало кто запрашивает кроме сертификата на свое доменное имя еще и сертификат на IP-адрес, который к тому же может изменяться. А современные браузеры при несоответствии полей сертификата реальному URL все чаще выдают ошибку, ограждая пользователя от подозрительного сайта.