Браузер рендерит страницу сверху вниз, в случае когда скрипты располагаются в теге <head>
рендеринг останавливается для того, что бы браузер скачал эти скрипты и затем продолжает работу, для некоторых сайтов эта задержка чувствительная, в таком случае предпочитают сначала вывести контент сайта, а затем подгрузить скрипты.
Так же существует еще один кейс, правда не очень правильный, когда какая-либо функция скрипта, работает с DOM-элементами сайта. Когда, его подключают сверху эта функция будет пытаться обратится к DOM-элементу который еще не отрендерил браузер, что вызовет ошибку. На примере jQuery это обычно решается с помощью обертки функции в $(document).ready(), можно отказаться от этой обертки, перенеся подгрузку скрипта в самый конец страницы, это гарантирует нам, что DOM будет отображен когда дело дойдет до загрузки скрипта.