Part of the explanation is the convoluted history of the people who lived in the British isles.
Originally, it was inhabited by gaelic-speaking Celts. Some of their words that are still used today ():
plaide -> plaid
tàrmachan -> ptarmigan
triubhas -> trousers
peata -> pet
Then, it was conquered by the Romans. Latin words that found their way into English (https://en.wikipedia.org/wiki/List_of_Latin_words_with_Engli...):
honor -> honor
imbecillus -> imbecile
inferus -> inferior
vulgus -> vulgar
Then, after the fall of the Romans, Britain was conquered by the Angles, Saxons, and Jutes, who brought the old German words mentioned below.
After this, the area was Christianized, and the priests and proselytizers brought even more latin with them because that was the language of the Church.
After this, large portions of England were conquered by the Vikings, who introduced more Scandinavian-origin words that others have mentioned here. In fact, King Canute was once simultaneously king of England, Denmark, and Norway.
After the Vikings, England was conquered by the Normans by William the Conqueror in the Battle of Hastings. The Normans were Viking raiders who settled in northwestern France and who had turned in francophones. They introduce french-origin words like:
boef -> beef
mouton -> mutton
veal -> veal
porc -> pork
After which, all these language influences congealed, vaguely, into the English we know and love today.
For this graphed: https://en.wikipedia.org/wiki/File:Origins_of_English_PieCha...
Edited for formatting.