Один из них заключается в том, что браузер не может кэшировать JS, если он находится на странице. Если вы ссылаетесь на него извне, браузер будет кэшировать этот файл, а не повторно загружать его каждый раз, когда вы нажимаете на страницу. С его встроенным он просто добавит размер файла на каждую страницу.
Также необходимо помнить о ремонтопригодности. Если это обычный JS, будет немного больнее внести изменения, если вам нужно обновить X количество блоков сценариев HTML-файлов вместо одного JS-файла.
Лично я никогда не сталкивался с проблемой с внешними файлами и встроенными. Единственный раз, когда у меня есть JS в самом HTML, есть когда мне есть что-то связать с загрузкой документа именно для этой страницы.