First, it is very important for you to know that dash and hyphen mean exactly the same thing in this context: the lowercase symbol to the right of the zero on your keyboard. The underscore, which is the uppercase item on the same key, is also a separator, but is not among the ASCII characters that can be reliably used in a domain name. In fact, the string is limited to letters A–Z, digits 0–9, the dash or hyphen and the dot or period.
Cons
The arguments against dashes fall into a couple of categories. First, it is pointed out that they’re a pain to type, partly because the dash isn’t directly under your fingers all the time (and people who don’t type a lot have to go hunting for it).
Another problem with dashes or hyphens is whether people will remember them. Whether people first see your site name in their browser window, or hear someone say it, they are more likely to remember the words than the dashes. They may see or hear
greatest-bookstore-ever.com
but remember
greatestbookstoreever.com
In fact, instead of just being able to say the domain name quickly and easily, you are going to have to remember to say, “greatest dash bookstore dash ever dot com,” which is both harder to say and harder to parse as a listener on the first hearing.
Another issue—one that may change over time—is that most people don’t expect hyphens or dashes in domain names. Reports say that when Wal-Mart® was only registered as wal-mart.com, they lost a lot of money before figuring out that owning the domain name walmart.com made a whole lot of sense.
Pros
So, with all the cons, why do people use dashes or hyphens at all? First, it may allow them to obtain a domain name for an established business for which the unhyphenated domain name is already taken. These buyers figure that rather than dilute their work in building up the image of “Greatest Bookstore Ever,” if greatestbookstoreever.com is taken, they can “make do” with greatest-bookstore-ever.com.
Second, the addition of dashes or hyphens can make a site name much easier to read. This is particularly true when there is a repeated letter, like the double e that appears when “bookstore ever” is run together.
Third, it can prevent seriously problematic misreadings. An owner of holiday rentals in Spain has a site choosespain.com, which can—unfortunately—be misread as “chooses pain dot com.” A hyphen or dash would prevent the misunderstanding. A whole host of two-word domain names with a plural first word followed by exchange as the second word, create sharply different, and unintended, meanings. With a hyphen or dash in place, their visitors would be concentrating on their site content, not on making fun of the domain name.
Fourth, perhaps because keywords can be more easily distinguished, there are those who claim that domain names with dashes or hyphens do better in search engine rankings than those without.
What’s the Upshot?
The best advice, then, seems to be, register two versions of your domain name: one with dashes or hyphens between words, and one without for each TLD extension you set up. Then you can set up pointing between domains, if you so choose.