It is standard to use lower case for file names, however I don't think it is compusory.
Space are also allowed, but it is good practice to use underscore instead.
The reason is spaces are one of the characters NOT allowed in file names by the browser, so it will insert a code ( %20 ) to represent the space. You may have seen something like:
my%20site%20home%20page.html in the address bar of your browser. Not very pretty.
The reason not to use a dash, is because computers treat a dash as a minus sign, so it can produce unwanted results.
Therefore it is a good habit to avoid spaces and dashes in file names.