São sinónimos, mas não sinónimos verdadeiramente perfeitos, porque ruim tem significado negativo por vezes mais intenso do que mau. Essa diferença de significado nota-se consultando o "Dicionário de Sinónimos e Antónimos", de Francisco Fernandes , da Editora Globo.
Transcrevo o que ele diz:
Mau. – Irregular, imperfeito, defeituoso.
Ruim, danoso, nocivo, prejudicial, inconveniente, ruinoso.
Trabalhoso, árduo, pesado, difícil, duro, áspero.
Perverso, malvado, cruel.
Funesto, triste, obnóxio, nefasto, infausto, negro.
Injusto, condenável, censurável.
Travesso, arteiro, traquinas, endiabrado, desenvolto.
Inconveniente, inoportuno, intempestivo.
Ingrato, mal-agradecido.
Inútil, imprestável.
Desastrado.
Ruim. – mau, imprestável, incapaz, reles, chué.
Pernicioso, inconveniente, perigoso, nocivo.
Inferior, ordinário, somenos.
Podre, deteriorado, corrupto, estragado.
Nefasto, funesto, fatídico.
Malvado, celerado, perverso.
Note-se que para mau não se apontam sinónimos tão inferiores como alguns que se dão para ruim, como por exemplo ordinário, corrupto, funesto, fatídico, malvado, celerado, perverso.
Empregamos, geralmente, ruim, quando tencionamos classificar alguém ou alguma coisa com uma qualidade muito inferior, abaixo das que habitualmente significamos com o adjectivo mau.
É evidente que nem sempre o adjectivo ruim se usa com significação inferior a mau, como vemos.