Obviously, it’s short for cuckold, an emasculated man.
However, in the past year it’s become the hot new internet insult. It started out as cuckservative, an insult by Trump supporters to describe Bush and Bush supporters. Then it became a generic insult by Trumpers to describe any conservative too spineless to support Donald. Now it’s been shortened back to cuck and used by right-wingers of all stripes, everyone from neo-nazis describing anyone not racist enough to movement conservatives describing RINOs.
Only recently has it started to be used against liberals by trolls pretending to be stupid. Still, whatever form it now takes, like all of the most crude insults, it’s all about projecting your own fears, failures and cowardice onto someone else.