Hmm... I always thought "at dinner" means "during dinner", so like "talking at dinner" etc. And "for dinner" means "the food which is our dinner". Just tried to search it and couldn't really find exactly this.
You really think "eating meat at dinner" should be added? I assume you are both native speakers right.
I'm a native English speaker. I've never given this much thought but I would say that if someone said to me "I do not eat meat at dinner" it would make sense too me. What you had to say about it makes total sense and is definitely the way that most people use "for" and "at" in those cases. Still I would assume that they mean "dinner time" if they said "at dinner" in this case. In other words it'd be the same as saying "for dinner".