I'm hopeful they will carry slightly different meanings in the future, where "card sharp" isn't pejorative but "card shark" is. Actually, today is the first time I've heard the term "card shark". Ahhh, English...
I suspect card shark has bled over from loan shark or some other term like that