Eat a roast chicken but not a roast cow?

Why in English do you normally say I'll eat a roast chicken, but not I'll eat a roast cow or roast pig?

That's because you're confusing the animal for its meat in this kind of utterance.

The meat of a chicken is normally referred to as only chicken. However, the meat of a cow/bull/steer/bullock/etc. is referred to as beef. If the bovine is a calf, the term veal might be used instead. The meat of a pig is referred to as pork. Likewise, a lamb (baby sheep)'s meat would be lamb, but adult sheep would probably be mutton instead. In the US it's common to call adult sheep's meat lamb as well.

So, when constructing a sentence about roast meats, it's common to see roast chicken, roast beef, roast veal, roast pork, roast lamb, roast mutton, etc. As you're referring to the meat and not the animal, it would be incorrect to mention the animal as a whole.