Why is "We have dinner on the boat" not accepted?
Because of "Vi spiser aftensmad" - We eat. Not "Vi har aftensmad" - we have dinner. :)
Why is "tea" not allowed?
It should not. Dinner is either the second or the last (third) meal of the day, and aftensmad (just like 'cena' and 'obed') is the last (the third) meal. 'Tea' is more like 'lunch', it's either the second or does not get counted.
But it's possible that I am wrong.
In some dialects of English, "tea" is the third main meal eaten in the evening. It has been added as an accepted answer for this sentence.
Sounds like they have a good life over there!
Wouldn't "at the boat" be correct either?
DrOnE sHoT oF mY yAcHt ItS aLl I gOt