Es difícil responder a la pregunta dado que se usan indistintamente en muchas ocasiones en el habla cotidiana.
Pero tienen sus matices.
DESENGAÑO
Según la RAE (Real Academia de la lengua Española):
http://lema.rae.es/drae/?val=desenga%C3%B1o
desengaño.
1. m. Conocimiento de la verdad, con que se sale del engaño o error en que se estaba.
2. m. Efecto de ese conocimiento en el ánimo.
3. m. Palabra, juicio o expresión que se dice a alguien echándole en cara alguna falta.
4. m. pl. Lecciones recibidas por experiencias amargas.
En este caso nos interesa la acepción (significado) 1.
DESILUSIÓN
http://buscon.rae.es/drae/srv/search?val=desilusiono
desilusionar.
1. tr. Hacer perder las ilusiones.
2. prnl. Perder las ilusiones.
3. prnl. desengañarse.
En este caso nos interesa cualquiera de las tres acepciones (significados).
Podríamos decir que para tener un "desengaño" hay que haber tenido una "mala experiencia" previamente, no así para tener una "desilusión" / "estar desilusionado" que no es necesario haber tenido una "mala experiencia", basta con no tener "ilusión por algo" aunque no esté fundado en nada y sea solamente un estado de ánimo.
Espero haberte ayudado.