The reason for this is backward compatibility.
Windows was originally built as a graphical interface on top of MSDOS, which only had files with 8 characters for the name and no more than 3 for the extension. MSDOS file system extensions allowed Windows to have longer file names and extensions, but they would still display as 8.3 file names in MSDOS.
Since the command line in Windows is an evolution of the old command interpreter in MSDOS, this means that some “anachronistic” behaviors (for example, a three-letter search pattern) were saved, so applications and scripts created in the “old days” or “old "old timers" will not break.
(another example is the fact that most Windows file systems are not case sensitive, yes, you guessed it, because MSDOS did not have a casing)
source share