English has several doublets where, for the historical reasons that @JavaLatte mentioned, an animal has an Anglo-Saxon name when it's alive, but a French name when it's served as meat:
- cow and beef
- calf and veal
- sheep and mutton
- deer and venison
- pig and pork
- bird and poultry — but individual species like chicken, turkey, and duck do not make the distinction
So normally, an observant Jew, Muslim, Seventh-Day Adventist, or Rastafarian would say “I don't eat pork.”
I can think of two reasons why he may say “I don't eat pig” instead. The boring one is that English is not his first language and he's just not used to the pig/pork distinction. The other is that he's deliberately using blunt language.
When you think about it, English meat names are a bit euphemistic. By using a different set of words for meats than for the animals that they come from, we obscure the fact that meat is animal flesh, hiding it behind fancy French words. Of course, since it's been almost a thousand years since the Norman Conquest, most people don't think of a word like “pork” as “euphemistic” or even as “French”; it's just a normal English word. But the etymology is there.
Saying “I don't eat pig” rejects the euphemism, focusing on the animal. It's as if to say “Would I eat this disgusting creature that rolls around in filth? That can carry swine flu or trichinosis? Ugh! Hell no!” It evokes a sense of disgust, that the sanitized term “pork” doesn't.
For a vegetarian or vegan, the sense of disgust would apply to eating any animal meat, not just pig/pork, and would have different reasons than for a Jew or Muslim, but similar logic applies: Eating an animal has a worse emotional connotation than eating meat.