Because Horatio, Adolf, Winston, and Benito are fairly common names. Napoleon is not. History is scattered with instances where we know people more as their nickname than as their actual name.
Ever heard of Gaius Julius? probably not. Ever heard of Julius Caesar? sure you have
How about this Emperor: Gaius Julius Caesar Augustus Germanicus? Not ringing a bell? How about his nickname: Caligula? That word literally translates to "little boots", which was what soldiers called him when he was a kid.
If you were a Roman in 60 A.D, you would have refered to the princep (remember, Romans didn't have a word for emperor!) as Nero Claudius Caesar Augustus Germanicus, calling him just Nero would have been considered improper. And that wasn't even his real name. His real name was Lucius Domitius Ahenobarbus.
John is just another bloke on the street. King John was the ruler who signed the Magna Carta.
You might not know who I am talking about when I refer to George, Ben, and Thomas. But Washington, Franklin, and Jefferson are a bit more clear.
Do I even need to enunciate when I talk about "Dubya"?
history is fuzzy like that. We traditionally pick a distinguishing short hand name, and that could actually replace their real or personal name.