Why does Nvidia need to support night light?
They don’t, but they needed to support the KMS API for applying lookup tables to the image sent to the screen - desktops relied on that functionality without a fallback, so when it wasn’t available, you just didn’t get the feature.
Can’t someone from Wayland just write a simple shader in any shader language that does colour adjustments and apply it to the desktop?
There’s no such thing as “someone from Wayland”, just the developers of the DEs (well, the project is named after a town, but I’m sure that’s not what you meant).
But, yes, you can use a shader. We implemented that in KWin and we’re using it when the driver or hardware doesn’t support the functionality we need… but that has a noticeable performance impact, so it’s still necessary for the driver to support it natively.
Yes. There isn’t really any other good solution.