And now we’re going to learn the etymologies of all the different words for meals. Because!
Breakfast showed up in the mid fifteenth century, a combination of break and fast (duh). Of course there were other words used in Old English for the meal we had after waking up. First was morgenmete, morning meal—morgen is morning and mete has a few different translations, most of which relate to food and meals. There was also undernmete; the mete is the same as before, but the undern is an old word from Old and Middle English that also meant morning. Undern actually shifted which part of the day it referred to over time. Early on it was specifically from 9 a.m. to noon, but then in the thirteenth century it was just midday. Which is why undernmete also at one point meant lunch.
Lunch didn’t show up until 1786—before that, it was always luncheon and even through the nineteenth century lunch was considered colloquial at best. Luncheon showed up in the late sixteenth century as a thick piece or hunk of something, not meaning a meal until the mid seventeenth century. Its origin is unsure, but it’s probably related to an old English word lunch that means a hunk of bread or cheese. It also might be related to the word nuncheon, which, shockingly, is not something I just made up. It was an actual word in the mid fourteenth century that meant a light refreshment, a mix of none (from noon) and shench. Shench is another obsolete word, but it comes from the Old English scencan, pour out a drink. So because people like to have a light meal and drink, by some roundabout way we get to lunch.
Dinner showed up in the early fourteenth century from the Old French disner. Originally it was used for breakfast and then for lunch, but always used to signify the main meal of the day. Dinner obviously is related to dine, which also comes from disner, to dine. It comes from the Gallo-Roman desjunare, which translates to “break one’s fast”, and comes from the Vulgar Latin disjejunare. The dis- means undo and the jejunare comes from the Late Latin jejunare (iejunus in classical Latin), to fast. If you’ve ever heard of the word jejune, yeah, that’s where it comes from. So dinner was a really shortened way of saying breakfast.
Finally, supper. It showed up in the mid thirteenth century as soper, the last meal of the day. It comes from the Old French soper, evening meal, which is probably related to soupe, broth, and the origin word for soup. While most Old French words are traced back to Latin, the French took this word from Proto Germanic. Supper, sup, soup, and sop all come from the Proto Germanic sup-, and before that the Proto Indo European seue, to take liquid.
So, yeah. Those were some weird origins.
Tony Jebson’s page on the Origins of Old English
“The Phonetic Origin and Phonological Expansion of Gallo-Roman Palatalization” by Eugene Buckley at the University of Pennsylvania.