as a native english speaker, i have never heard anyone say "good appetite." Bon appetit sometimes. Maybe a better translation would be that (despite it being a french phrase technically.) Or "eat up!."
Or maybe "Enjoy your meal!" If I saw "Eat up!", I'd translate that with 'Finmanĝu!' ;)
I have! But they weren't a native English speaker, so it doesn't really count.
How can the entire sentence be a direct object? (Why is it "Bonan apetiton" instead of "Bona apetito"?
When you use an expression like “Good apetite!” in English you are actually shortening a full statement.
Bonan apetiton! = Mi deziras al vi bonan apetiton! (I wish you a good apetite!)
Because it is wish: a short form of "Mi deziras al vi bonan apetiton!" (As you say „Guten Appetit!“ in German or “прия́тного аппети́та!” in Russian).
I've never heard anyone say "good appetite" in English. We always say "bon apetit" (French), or just say something else that conveys the same message (Enjoy your meal, etc.).
Since its English is already borrowing French why not use creative license while at it