It might sound archaic and stuffy to many people, but it's grammatically correct.
Most likely you would need the verb comer for that sentence. The verb cenar is, as far as I have seen, used more specifically to describe dining or eating dinner. Even though "last night" gives the context that it probably was dinner, I think Duo still would not accept the different verb.
I would expect "we ate rice for dinner" to be accepted, but you have to mention dinner or dining in some way.
the answer given here is what I wrote, I was told it should be "for tea" not for dinner!!
Please explain where the "for" is in the sentence. It seems as though the translation is we had rice dinner.
You cannot always expect a literal word for word translation between two languages. "a rice dinner" is an article + adjective + noun. The Spanish sentence here is cenamos arroz, a verb + object == "we dinnered or ate / had for dinner rice." Translating this word for word results in a nonsensical English sentence, so the way we express the same sentiment in English is substituted: "we had rice for dinner."
No, "the dinner" is la cena. Cenar is a verb meaning to eat/have dinner. This sentence uses the appropriate past-tense conjugation for "we" (nosotros). That makes the translation of this sentence, "Last night we had / ate rice for dinner."
For what it's worth, desayunar and almorzar are the verbs for "to eat/have breakfast/lunch."