Интерпретируемые языки исполняются построчно
Неа, интерпретируемые языки это те, которые исполняются не машиной, а программой-интерпретатором.
Работа php скрипта начинается с парсинга кода. Проводится лексический и грамматический анализ. Будет ли использоваться какой-либо промежуточный байткод здесь пока не важно.
В вашем примере, php парсер обнаружил неизвестную продукцию и сразу же кинул ошибку. Можно было, конечно, выполнить код до последней корректно определенной продукции, но зачем? Php старается уходить от устойчивости к стабильности, т.е. от "отработать хоть както" к "отработать обязательно корректно". "Хоть както" все равно можно, но это должен быть сознательный выбор.
И, хотя в php нет предварительной компиляции, тем не менее ошибки синтаксиса легко обнаруживаемы при запуске, поэтому логично о них сообщать сразу.
Что касается, зачем анализировать весь код, а не построчно, то это тупо быстрее даже без байткода, и дает преимущества по оптимизации. Например, если вы объявили переменную и присвоили ей значение, а дальше в коде нигде ее не меняли, то php сделает ее константой.