A lot of coders like giving filenames underscores rather than dashes, because when you select (doubleclick) a filename_like_this all the text is selected, whereas a filename-like-this may only have part of it highlighted - so to me, an underscore is more akin to 'treat this like a word' and a dash is 'treat this like a space' - and either is better than %20!
For SEO though, the dash=space is worth it where:
-
the URL string is long (thisisnotaseasytoread in the address bar, this-is-much-easier-to-comprehend) - I think that helps users, which in turn signals to Google that you're being helpful
-
if the concatenation of the words would be confusing to a stemming programme - see here for examples http://independentsources.com/2006/07/12/worst-company-urls/
-
if someone wanted/had to manually type a url, a dash is quicker/easier as you don't need the shift key (which you do for an underscore)
-
if someone shares (pastes) a raw, long URL, with dashes in you have a chance it will wrap in a blog or wherever -
that looks dreadful, whereas you might get away with high-on-the-hill-stood-a-lonely-goatherd
- I find that it also helps with link-naming consistency, it's easier for you to spot your own typos or linking errors (so fewer 404s to hunt down)
Sorry, must dash