Is my answer wrong? "Have you already eaten this evening?"
It's not entirely correct or wrong, although you're trying to say the same thing. Das Abendessen = dinner. zu Abend essen = to have dinner. Stick with duo's version, it's fine.