This is an excellent question since 'nos' is a feminine noun.
There was a very long discussion about this in the facebook group 'dw i'n dysgu cymraeg' some months ago.
The simple reason is that 'nos dda' is actually very difficult to say and thus 'nos da' is used instead.
Remember the point of mutations is to make the language flow better.
However in general use, apart from greetings' the word for night is 'noson'
In this case 'a good night' uses the correct mutation 'noson dda'
One of the most used expressions of 'noson' is the very Welsh event called a 'noson lawen', literally 'a merry evening'