Потому что понятие «завтрак» в данном устойчивом выражении употребляется в абстрактном (отвлечённом) смысле: речь идёт не о конкретном завтраке (the breakfast) и не о каком-либо завтраке (a breakfast), а о завтраке вообще – как об абстрактном (отвлечённом) понятии.
Примеры:
I’m going to have breakfast in five minutes – Я через пять минут буду завтракать (собираюсь завтракать)
We had breakfast and went to school – Мы позавтракали и пошли в школу
Небольшая подборка полезных выражений на эту тему:
to have breakfast – завтракать
to have brunch – иметь так называемый поздний завтрак (слово ‘brunch’ произошло от слияния слов ‘breakfast’ и ‘lunch’)
to have lunch – обедать
to have dinner – ужинать (речь, как правило, об обстоятельном, «семейном» ужине с 18-ти до 19-ти часов, но в некоторых ситуациях это может быть и обед)
to have supper – ужинать (речь, как правило, о более лёгком ужине; употребляется редко)
Но это не значит, что слова breakfast, lunch и др. не могут употребляться с артиклями. Могут! Смотрим примеры:
The breakfast I had this morning was very tasty – Завтрак сегодня утром был у меня очень вкусным
A good, tasty breakfast is what I need right now – Хороший, вкусный завтрак – это то, что мне сейчас нужно
В первом случае речь идёт о конкретном завтраке (the breakfast I had this morning), а во втором – о некоем хорошем и вкусном завтраке (a good, tasty breakfast).
Всё так, как и должно быть согласно английской грамматике. Никаких отступлений от неё здесь нет.
Проблема в том, что данная тема недостаточно полно освещается в учебниках английского языка. И это плохо! Но у себя на сайте мы уделяем ей должное внимание.