One cannot hope to explain the difference between lunch and dinner better than simply by quoting what The Oxford English Dictionary (OED) - the �bible' of word-meanings - says about 'dinner'...
"The chief meal of the day, eaten originally and still by the majority of people about the middle of the day, but now, by the professional and fashionable classes, usually in the evening."
They're called school 'dinners' for the very simple reason that the vast majority of pupils who attended state schools when such meals were first provided were (still are?) the children of working-class parents. And the working folk of Britain do, by and large, still speak of the midday meal as 'dinner'. Obviously, therefore, that usage would be carried over from home to school.
I'm fairly certain that the pupils at Eton, Harrow, Roedean etc do not call their midday meal 'dinner'! Why? Because they're not working-class!
By the same token, there are no doubt many people of working class background who use �dinner' to mean their evening meal. All that this means is that they are not part of the majority referred to by the OED above.
Re �tea', it says, "Now usually a light meal in the late afternoon but, locally in the UK, a cooked evening meal."
So, it is simply not a case of anyone's meal-list being right or wrong. It is clear that this whole thing is almost entirely a matter of perceived class and - to some extent - geography.