Answer:
It's more than fair for the player.
For the dealer, not so much.
Explanation:
Start with how many cards are in a deck: 52
How many suits are there: 4
So each suit has 52/4 = 13 cards, right?
So here we go:
What are the odds of drawing a heart if all 52 cards are in the deck?
It's 1 out of 4, right? Really it's 13 out of 52, but that reduces to 1 out of 4. And anyway, with 4 suits, we know that 1-in-4 times we're likely to draw a heart. (Over an infinite number of trials it'll be exceedingly close to 1:4.)
Now, each time we lose, we lose $2. And on average we're going to lose 3 times before we win $10 once. So you can think of it looking like this:
-2, -2, -2, +10, -2, -2, -2, +10, -2, -2, etc.
You can see that you'll lose $6 about as often as you make $10.
So no, the game isn't fair at all.
To the dealer! Let me know where this game is played though and I'll be rich in short order.
There are other ways to prove this mathematically, but it comes down to losing less the 3 times you lose than you win the 1 time you win. (3 x 2 < 1 x 10) If the payout were $6 if would be an even game and not worth playing except for short-term random luck.