Historically, one of the big design decisions in Unix was to consider everything as a file.¹ This transpires in early ls and stat manpages; for example, in V3 (February 1973), the stat manpage (which describes the mode used by ls) says that
The mode is a six-character string whose characters mean the
following:
s: file is small (smaller than 4096 bytes)
l: file is large
d: file is a directory
x: file is executable
u: set user ID on execution
-: none of the above
etc.
In V4 (October 1973) the mode starts to resemble what we have today; the ls manpage says
The mode printed under the -l option contains 10 characters which are interpreted as follows:
the first character is
d if the entry is a directory;
b if the entry is a block-type special file;
c if the entry is a character-type special file;
- if the entry is a plain file.
The next 9 characters are interpreted
as three sets of three bits each.
So it seems the creators of Unix really thought that a plain file is “just” the default, nothing special, so it doesn’t deserve a character — everything is a file, and only files which aren’t plain files need additional description. One could think of - as signaling the absence of “specialness”.
¹ Strictly speaking, the design decision was to make everything accessible through the file system, not to consider everything as a file; but as a result, everything had to be made available as some sort of file, and this required being able to distinguish different types of files. See section 3 of The UNIX Time-Sharing System.
-makes the rarer file types (everything else) stand out. – Sep 22 '18 at 19:57