"What does he have for dinner?"
Translation:Что у него на ужин?
"есть" as in "to eat"? You can do that: "Что он будет есть на ужин?", but it corresponds to a different English sentence: "What will he eat for dinner".
Or did you mean "есть" as in "is"?. If so, in this sentence you can insert it: "Что у него есть на ужин?" It is harmless, but unnecessary.
If it's ok yet unnecessary shouldn't that answer ("Что у него есть на ужин") be accepted then?
Sure. Report it if it has not been accepted.
Be aware though that the meaning is slightly different, but it should still be acceptable:
"Что у него есть...?" is a question about availability of something. Hence "Что у него на ужин?" asks about the food he is preparing/has prepared for dinner. "Что у него есть на ужин?" asks about the contents of his fridge/pantry: you've just decided to swing by his place and either ask about some leftovers in his fridge that are ready for consumption or else want to fix some impromptu dinner there and are interested in what ingredients might be available.
So like by adding "есть" is like adding "is there" in english? Ok, sounds reasonable. I'll try to keep that in mind.