The hyphen is the key on your keyboard. It's what goes between some words when they're acting as one word, e.g. mother-in-law.
The dash is longer--it's either a long ("em") dash character or 2 hyphens, as I used here--and it's the grammatical construct that acts somewhat like a comma.
And I'm not just nit-picking. It's confusing to use a hyphen when you mean dash, especially when you also have hyphens in the vicinity. Here's the sentence that convinced me to post this:
>I predict a complete heads-up match with Facebook–Zynga’s now been double-crossed not once but twice by Zuckerberg.
The characters in "heads-up" and "double-crossed" are both hyphens, but the character between "Facebook" and "Zynga" should be a dash (or 2 hyphens).
Edit: So he's using en dashes, which are shorter, but they are different from--and slightly longer than--hyphens. But it's much easier to tell an em dash from a hyphen than an en dash from a hyphen, and the em dash is proper.
Here's a hyphen, followed by an en dash, followed by an em dash:
-
–
—