Purely speculation, but maybe because it makes a typo way more likely to invoke an actual command?
If say, "rm" was just "r" and "find" was just "f"... well those keys are right next to each other on a QWERTY keyboard after all. Oops.
I don't know if it's intentional, but it would tend to increase name collisions with shell variables.
Plus all the good one character commands were already taken by the standard text editor, ed(1). It would have caused confusion.
But commands and variables are in different namespaces.
Single letters were reserved for personal commands and aliases.
They were sent over a network. Every baud counts. And then the output had to have a fixed width (not necessarily a fixed length, since it may have been printed on paper) because of "display" size.
^ This, and also because the keyboards back then were very hard to type on.
There used to be a type where 80x24 character terminals were a luxury, and even a type where printing commands and ouput actually meant printing on paper. Unix was developped in these times.
One presentation on the topic claims that the keyboards of the day were very stiff, so they preferred typing as few characters as possible.
According to Hendrik Jan Thomassen [0] this is the reason.