Te explico:
Primero que nada, la CMD no es lo mismo que MS-DOS. En Windows no estás usando MS-DOS.
Según lo que he leido (no me voy a poner a usar el MS-DOS 6.22 para verificarlo), en MS-DOS no existe ninguna variable
built-in llamada %date%, por eso al escribir
echo %date% se imprime exactamente la cadena de texto "%date%".
Lo que si hay es un comando llamado "date", cuya salida deberías poder imprimirla de la siguiente manera:
command.com /c
echo.
|date
Aparte de eso, al parecer DOS no soporta la expansión de variables en tiempo de ejecución diréctamete en la consola, cosa que ya habrás notado al intentar declarar una variable, asignarle un valor, e imprimirla con el comando Echo.
Fuente:
Saludos