как он работает ?
При нажатии на ссылку "перенаправляет" браузер на файл - то, что указано в href ссылки, является заголовком файла и его содержимым. Браузер "видит", что он пытается открыть файл и предлагает пользователю его сохранить.
почему document.write нежелательно использовать ?
Да используйте на здоровье, просто поймите, как он работает - во-первых, выполняется в момент загрузки страницы ("Он дописывает текст в текущее место HTML ещё до того, как браузер построит из него DOM."), во-вторых, если вызвать его после загрузки, то все содержимое страницы удалится. Ну а вообще, это один из самых старых методов языка, когда-нибудь его, скорее всего, удалят )), поэтому и рекомендуют юзать что-то поновее. Хотя бы тот самый innerHTML. )
https://learn.javascript.ru/document-write