Хранение javascript отдельно в файле улучшит производительность загрузки страницы. Встраивание JavaScript в html-файл может блокировать рендеринг html.
Во встроенном сценарии время, затрачиваемое на выполнение сценария, может изменить DOM. Попытка визуализировать DOM, пока он мутирует, является рецептом путаницы. Таким образом, рендеринг происходит только в точках, когда JS остановлен, и, следовательно, DOM стабилен.
Во время ожидания загрузки внешнего сценария выполнение сценариев останавливается, поэтому DOM можно безопасно отобразить. Загруженный JS не будет запущен, пока не завершится рендеринг.
Так что это одна из причин, по которой файлы html файлов отделяются от файлов javascript.
Также поддержка Javascript в файлах будет проще, чем встраивание в html.