This is due to the bytecode output. There were too many opcodes in the world before 80286, so Intel engineers found ways to overcome this problem. One solution was to extend the part of the bytecode that indicates the operation (multiplication in this case) to the part of the bytecode that encoded the first operand. This clearly meant that only one operand could be supported when executing the MUL operation code. Since two operands are required for multiplication, they solved the problem by hard coding to the processor so that the first operand is always an eax register. Later processors supported bytecodes, which were of several lengths, which allowed them to encode more data in one command. This allowed them to make the IMUL opcode much more useful.
Today there is an interesting parallel with the expiration of IP addresses.