Six comes from the Old English siex, which is from the Proto Germanic sekhs and Proto Indo European sweks-. We also often use the prefix hexa- when there’s six of something and that too is from sweks-, just through the Greek hexa- instead. I guess they’re the ones to blame for changing it from an s to an h.
As for the numeral, the ones we use come from India and the Middle East. Both Brahmi and Hindi used curly-cues that look a lot like 6 with a little more flourish to them, but then when it went into Arabic they changed it so it looks more like, well, a 7. As the number migrated to western Arabia, it took on a more “six-ish” look, which then eventually migrated out to Europe (and probably helped along by the Crusades).
So that’s it. It still leaves the question of just why they chose the curly-cue to become the 6. Maybe they liked the way it looked?
Sources
Tony Jebson’s page on the Origins of Old English