After the Norman conquest in 1066, the French nobles were served by the Anglo Saxons. The Anglo-Saxons who raised the animals in the fields used the English names, but the people who cooked and served the meat used the Norman French names, since that was the language spoken by the nobles (who were eating the meat). So the animal called “cow” by the Anglo-Saxon commoners was called “boeuf” by the French nobles when it was brought to them cooked at dinner. This created the distinction between the words for animals and their meat.
Here are several examples where the English word comes from the French: mutton = mouton (sheep), veal = veau (calf) and pork = porc (pig).