When naming files and folders on your site you will often need to seperate words in the same filename. The HTTP specification doesn't offer a way to do this with spaces without URL encoding the filename:
filename%20with%20spaces.html
As the result is relatively unreadable, some site authors use the underscore character as a seperator instead.
filename_with_spaces.html
This produces a cleaner, more readable URL. However, when indexing filenames search engines will not seperate the words, so "filename_with_spaces" will not register under the terms "filename", "with" or "spaces".
It is therefore recommended to use the dash character instead. This character will enable filenames to be broken into keywords.
filename-with-spaces.html
The origin of this issue comes from computer languages where the underscore is commonly used as part of keywords or variable names.
Dashes vs. underscores - mattcutts.com Of Spaces, Underscores and Dashes - codinghorror.com