Actually, Cho Kyuhyun isn't his name. His name is 조규현. "Cho Kyuhyun" is just a Romanized form of his actual name for those who can't read 한글.
Instead of "Why is his Korean name spelled wrong" (which is clearly not the case, I think he knows his own name), how about "Why doesn't the Romanization align with the Korean spelling?" or "Why does the English spelling of his name not match up?" That's exactly why - it's the English spelling.
Also, Romanization is cruddy. It can't accurately demonstrate how to pronounce a word. There's different systems used and it's left up to interpretation as well. It would be more effort to try and master reading Romanization than to just read the actual alphabet of the language you're studying.
I do not write English using the Cyrillic alphabet. I use the alphabet English is actually written in - the Latin one.
The others had good answers and examples too.
When you put foreign names into 한글, they don't sound the same.
When you put a Korean 한글 name into the Latin alphabet, it doesn't sound the same.
Different languages, different readings, different pronunciations.
We use lots of words from other languages in English, and we absolutely do not pronounce them the same as they are actually pronounced in their original languages.