Причина в гибкости. У вас может быть несколько разных ОС на одном жестком диске (Windows, Linux и т.д.), Или у вас может быть несколько разных версий одной и той же ОС. Следовательно, лучше иметь независимый от ОС фрагмент кода, который знает, где находится каждая ОС, установленная на жестком диске, как загрузить каждую из них, какую загрузить, представить меню или нет и т.д. Это загрузчик.
BIOS загружает и выполняет код, расположенный в заранее определенном месте на жестком диске (первый сектор). Мы называем этот код загрузчиком, но технически, если вы установили Windows на чистый жесткий диск, этот код также устанавливается и Windows, так что вы можете назвать его частью Windows, тем более что загрузчик Windows не может загружать другие ОС, кроме Windows.
Что касается первой программы, которая запускается при запуске компьютера: различия между прошивкой и программным обеспечением довольно тонки, а процесс запуска современного компьютера очень сложен. BIOS сам по себе также не монолитная программа, а несколько отдельных этапов, соединенных вместе. Тем не менее, bootloader является первым изменяемым пользователем кодом, который запускается. Это первый фрагмент кода, который пользователь может повредить, стереть, заразить вирусом и т.д. Поэтому я полагаю, что, хотя технически BIOS является первым программным обеспечением, которое запускается, загрузчик является первым в том смысле, что если компьютер не загружается, пользователь должен чтобы проверить, все ли в порядке.