"Ho una cena."
While "ho una cena" is certainly directly translated to "I have a dinner", I can think of almost no instance where in American English a speaker would use the article here. "I have dinner" is the proper "translation" of this sentence in my mind. I had already missed this once, and neglected to comment, so I just sacrificed a heart to report it this time - :-)
That is still quite strange, and as an editor I would probably suggest to the writer that he does not "have a dinner". He might "have a dinner to attend", or "have plans for dinner", but he does not possess a dinner.
One of the biggest problems in learning language is that it's important to learn idiom and usage as well as well as structure. If I see an Italian sentence translated into "awkward" English, then I have to ask myself if the Italian I'm learning is perhaps awkward too. In the big scheme one might ask if it makes any difference, but I should not be told that "I have dinner" is incorrect for "ho una cena" because in everyday usage that's exactly what Americans would say. I always specify "American" because my British husband still says things after 18 years of marriage that are idiomatically quite different.
Your excellent point underlines one of the enduring anxieties that has pervaded me as I have worked through duolingo. The frequent awkward translation into English does indeed beg the question of whether the Italian is similarly awkward. There is also an uneasy tension between the variable acceptance of idiomatic phraseology versus pedantic literal translation. As learners we cannot know and this feels uncomfortable. As for your British husband - I'm afraid there is no hope after 18 years! ;)
Yeah, you cannot quantify dinner, thus any counter "one, two, three" does not make any sense. Because you cannot use "one", you cannot use "a" as an indefinite article for "dinner". If an indefinite article is to be used, it has to be "some", as in "I have some dinner".
I don't know what the specific rule for this is, and it might be a Germanic language family thing, I do not know.
I guess I leave it as a common sense type of thing. If this were someone learning the language from a non latin-based language, it would be extremely confusing. But this is the general rule of thumb for most Latin languages that I have seen, so it was easy to spot the mistake.