Retarded means slow, and people with learnning disabilities are called that. And in any case calling someone slow or so stupid it has to be a mental disorder is better than telling them "You are a married man being cheated on!".
Being a cuckold means you're a pathetic, poor excuse for a man. A cuckold isn't just someone who gets cheated on, it's someone who gets off to the thought of watching their S/O get fucked by someone else. Calling someone a cuck is saying how pathetic they are. Again, it's just like how "fag' would be used for "unmanly" or retard for "stupid". The insult comes from implying they're like those things.