Dizemos "eat dinner" ou "have dinner"?
Na verdade, ambos estão corretos, mas são usados em diferentes ocasiões.
Quando nos referimos ao ato em si (comer - mastigar e beber - engolir) usamos DRINK e EAT. Porém, quando nos referimos ao momento em que comemos ou bebemos, usamos HAVE.
Quando convidamos alguém para jantar, almoçar, usamos HAVE. Ou quando nos referimos ao almoço, café da manhã, horários, etc:
Let's have dinner together next week?
He has breakfast with his boss once a week.
What are we having for lunch?
She drinks coffee with sugar.
Chinese don't eat their meals with knives and forks.
Espero ter ajudado!