As said in that commentary, to have a dinner isn't ungrammatical, but implies a dinner for a specific reason. Examples are:
- we're having a dinner in his honour
- we're having a birthday dinner for you
but the difference is totally unclear for me. What is changed, if I'd say we're having dinner in his honour, for example.
the dinner
anda dinner
since both are reffered to the meal as an event. I think this question is not worthy to be asked by itself.