Shibboleth n. [shib-uh-lith, ‐leth]
A peculiarity of language, pronunciation, or behavior, regarded as distinctive of a particular group, class, or nation that distinguishes them from others.
In Canada and the US, "dinner" and "supper" might be used slightly differently by some people but are generally considered synonyms. However in Britain, the name you give your meal is a shibboleth that can instantly identify your social origin.
Working-class and lower-middle-class people are more likely to refer to the midday meal as "dinner" and the evening meal as "tea", which is eaten around 5:00-6:30 PM. They will have breakfast in the morning, and "elevenses" as a snack between breakfast and dinner.
In the middle ages, "Dinner"* referred to the first meal of a two-meal day. It was traditionally the the heaviest of the two meals, eaten around midday. Eventually, the meaning of "dinner" shifted, referring to the heaviest meal of the day, when "breakfast", a light meal eaten early, became the first meal. In the 18th and 19th centuries, the upper classes began to eat their main meal of the day later and later, while the working classes continued to have their heaviest meal, or dinner, at midday. From 1738 onwards, the meal that followed a working class "dinner" was called "tea", later referred to as "high tea"** and was eaten after work.
In today's society, people have to travel farther away from their homes to work, so the main meal is usually after work with the family. This means that "tea" may now be the largest meal of the day for working class families. To add another layer of confusion, working class people might have a small snack before bed and call that "supper", although it is not considered a meal.
Upper class people will eat "lunch" at 12:00PM. A "luncheon" is a noontime party where a meal is served, or a more formal lunch with guests. To fill the increasing gap between lunch and the evening meal, upper class people in the 19th century had "afternoon tea" at about 4:00PM. Since many upper class people now have careers instead of estates, afternoon tea is no longer a daily occurrence, and is usually reserved for weekends or special occasions.
The upper class "afternoon tea" was very different from the working class "tea" that was served at 5:00PM. However, children of upper class families used to have their supper at 4:00-5:00PM, and their mother would sometimes eat with them instead of having afternoon tea, and then have a formal dinner afterwards.
Today, the upper class will refer to the evening meal as "supper" if it is informally eaten with the family at the kitchen table,(or if you are really wealthy, in an informal dining room) and it is eaten about 7:30 PM. "Dinner" refers to a more formal evening meal of several courses, eaten in the dining room, perhaps with guests and a dress code, and usually eaten from 8:30 onwards. (Think "dinner party")
Middle class people will eat "lunch" at 11:00AM. They refer to the evening meal as "dinner", regardless of formality, and eat it around 6:30-7:00 PM. Cafeteria meals in (state) schools are referred to as "school dinners". "Christmas Dinner" and "Sunday Dinner" refer to the main meal on those days, even though they are often eaten early (around 4:00PM).
If all this makes your head spin, now you know why these phrases are shibboleths; people go with what they know, therefore it is easy to recognize where they come from.
* Etymology: Dinner: from Old French disner "to eat, to dine, to have a meal", from Gallo-Romance desjunare "to break one's fast," from Latin dis- "undo" + jejunare "to fast"
**Disambiguation: Outside of Britain, many people refer to "afternoon tea" (served with cakes, scones, sandwiches, and tea) as "high tea" but this is an incorrect usage. "High tea" is low class, but served on a high table, whereas "low tea", (which is what most people think of when they hear "high tea") is high class but served on a low table, like those found in a sitting room.