Dinner is the largest meal of the day (not breakfast). Supper is food you eat after dinner. My mother grew up on a dairy farm in Kansas. Lots of farmers have their biggest meal at lunchtime. We had dinner at 6pm Mon-Sat. We had Sunday dinner about 2pm. Then at 6pm or so we had supper which was a get-your-own from what was put out. We did not sit at the table. It was the only time we could watch TV and eat.
I lived in New Zealand in the 1980's and found out that they also used supper as a "meal" after the largest meal. This was particularly true when attending a dance – supper was served around 11 pm. Their word for dinner was tea. So when someone invited you to tea you had to find out if it was for late afternoon (2:30-4:30) or later which was dinner.
I've always understood supper to be the evening meal, even if it's the main meal of the day, as it often is in North America. I imagine that's why the words supper and dinner are somewhat interchangeable there. Other places the distinction tends to be more clear. German avoids the issue completely, calling them early bit, midday meal, and evening meal respectively, though a more hearty brekky is often referred to as farmer's breakfast.
French has déjeuner (etymologically breakfast but chronologically lunch), petit déjeuner (little breakfast i.e. brekky), and dîner (dinner); plus the word souper exists, defined as a late supper. If I remember correctly (it's been decades since I've been to France), the main meal can be either midday or early evening.
In Spanish we have desayuno (breakfast, both etymologically and chron'ly), almuerzo (uncommon here in Mexico, the usual word is comida which also means full course meal), and cena (supper), which is almost always light. The main meal is almost always at midday, hence the supplanting of almuerzo with comida. Almuerzo really means lunch as opposed to full course midday meal. Merienda is a synomym for cena. (Folks down here continually tell me Spanish is difficult because it's riddled with synonyms, and I tell them I bet English is worse).
It appears that "school dinner" refers to the mid-day meal in the UK: Telegraph article.
I've heard it explained different ways, but the way I settled it in my own mind is that dinner is the main or most complex meal of the day. In some families they have dinner at lunch; in others they have it at supper. In my family we had dinner for supper, except on Sunday when it was for lunch.
Indeed it was. So I guess it comes down to which meal is the heaviest. And even though my family came from a farming background on both sides, the evening meal was always our heaviest. But that was because we were not really farmers in our post-WW2 generation. My dad had a full time job, came home around 5 pm, so our evening meal was the big one.
I've been listening to podcasts of past show recently one of which discussed about Dinner vs Supper . I finally got around to weighing in on the subject.
Growing up in Norther Minnesota we had Breakfast, Dinner (noon meal) and Supper (Evening meal) with Lunch being any meal between.
Garrison Keillor has a great description of lunch in his book Lake Wobegon Days that came out several years ago.
I grew up in north Eastern Minnesota, my wife grew up in a North Western Minnesota very rural farming area and also considers the noon meal as dinner and evening meal supper.
A great example of the confusion that come from not understand the difference was a couple of years ago one of our nephews and his wife were going to be traveling through the area and visit Grandma and Grandpa (my inlaws) and said they would be stopping by around dinner time. My mother-in-Law had the table set and food ready at noon when the kids meant they would be there for the evening meal. After after living in "The Cities" for so many years they apparently forgot the rural northern difference.