Because spaces are source of confusion and they're a pain to deal with in programming/scripting like any special character. No spaces in an URL address for instance...Some software might not recognize them properly, so on... So dashes, points or underscores... is a general convention for file naming (not only in 3d).
Yeah, it's not just an old thing, even now spaces are kind of a special case character that'll get you in trouble in most scripting languages and operating systems due to their tendency to break folder links, not to mention there's actually a bunch of different characters that look like spaces but aren't, further adding to…
An interesting note you bring up regarding Python and C based languages. I've seen the same thing, particularly with Autodesk code. 99% of all Mel scripts and even their python code utilizes camelCase for variables and functions. What's interesting is that this is counter to PEP8 guidelines (no camelCase for either, only…