Comece por cozinhar as batatas em água com sal até ficarem macias, mas não desmanchando. Escorra e reserve.
Em uma panela grande, aqueça um pouco de azeite e a manteiga em fogo médio. Adicione as cebolas e o alho picado e refogue até que fiquem dourados e macios.
Adicione o bacalhau desfiado à panela com as cebolas e refogue por alguns minutos até que o bacalhau comece a dourar levemente.
Adicione o leite e as natas (creme de leite) à panela e deixe ferver. Reduza o fogo e cozinhe por cerca de 5 minutos, mexendo ocasionalmente, para que o molho engrosse um pouco.
Tempere o molho com sal, pimenta e noz-moscada a gosto. Lembre-se de que o bacalhau já é salgado, portanto, vá com calma no sal.
Pré-aqueça o forno a 180°C.
Em um refratário, faça uma camada com metade das batatas cozidas. Cubra com metade do molho de bacalhau.
Repita o processo com a outra metade das batatas e do molho.
Polvilhe o queijo ralado por cima do prato.
Leve ao forno pré-aquecido e asse por cerca de 20-25 minutos, ou até que o prato fique dourado e borbulhante.
Retire do forno, polvilhe com salsa picada e sirva quente.