Почему принято использовать тире для разделения слов?
Потому что в естественном языке составные слова по правилам грамматики пишутся через
тире дефис.
Почему не используют нижнее подчеркивание?
Как раз таки используют очень широко везде, где дефис не может быть использован по техническим причинам. Например, в идентификаторах в большинстве языков программирования.
А зачем вообще в те времена убирали пробелы с названий песен? Замена кириллицы на латиницу еще понятна, но убирание пробелов зачем?
Пробел не входит в число символов, допустимых в
коротких именах файлов в DOS. Если в
VFAT задать файлу имя с пробелами, то во всем софте под DOS это имя будет отображаться очень некрасиво (юникод (кириллица, например) там выглядит еще страшнее). А если этот файл под DOS еще раз переименовать, то такое обрезанное имя останется и в VFAT. Поэтому замена на латиницу без убирания пробелов не имеет смысла.