Curse's differing effects are a play on its Japanese name, のろい Noroi, which can mean either "curse" (呪い) or "dull/slow" (鈍い), depending on the kanji used. This is why it bestows an actual curse when used by Ghost-type Pokémon but lowers Speed when used by non-Ghost-type Pokémon.
Bulbapedia
In the beginning, it was a joke of sorts, I guess. This is further proved by the story (which let me state for the record, I think is genius) the man who gives the curse TM in the Gen 2 games tells:
Let me recount a terrifying tale... Once upon a time, there was a little boy who was given a new Bicycle... He wanted to try it right away... He was having so much fun that he didn't notice the sun had set... While riding home in the pitch-black night, the bike suddenly slowed! The pedals became heavy! When he stopped pedaling, the bike began slipping backwards! It was as if the bike were cursed and trying to drag him into oblivion! ... ... Shrieeeek! The boy had been riding uphill on Cycling Road! ... Ba-dum ba-dum! For listening so patiently, you may take this—TM03! TM03 is Curse. It's a terrifying move that slowly whittles down the victim's HP."
-(Same as above)
So initially it was meant to be a clever play on words, and to add to the spook and mark its unique effects, it even had a ??? Typing until Gen 5.