Потому, что раньше программист мог написать всё с нуля. Но и стоит работа профессионального программиста дорого. Да и программистов во все времена было немного. А сегодняшний малообразованный кодер (считающий себя "крутым программером") только и умеет, что собирать код из готовых кубиков-библиотек, созданных программистами. Зато таких дешёвых кодеров полно. А что качество ниже, так "железо всё вытянет".
В программах для Spectrum тоже могли использоваться библиотеки, но они были встроены в исполняемый файл. Даже в DOS не было динамически подключаемых библиотек (DLL - это динамически подключаемая библиотека). Но это не значит, что библиотеки вообще не использовались. И сейчас есть небольшие программы без DLL-библиотек.
Низкоуровневые программы существуют до сих пор, и некоторые из них работают без библиотек. Чем выше уровень, тем больше абстракции, которая и обеспечивается библиотеками.