Dedicated to the public domain so it might help someone else as you have helped me.
This is about as simple as they come. A hemisphere with a moon surface (NASA, public domain) mapped on there. We see the moon in phases because of how reflected light hits the earth but the moon itself is always 50% lit, except under eclipse conditions.
This is v2.0 (sorry) as I decided the other version was too fiddly to get right. I've reverted this to an emission texture for the "light" side of the moon as a black emission for the dark side which we can't normally see anyway. This also renders more quickly and will illuminate other objects nearby as it's a light source but doesn't suffer with noise (although it will create noise on other textures).
The fade/bend is now achieved using vector math with a cross-product to work out the way the normals are facing and gradually darken the outside edge of the texture. This technique might be useful for other things although I haven't tried it.
Included is a simplified height-map which is gives a very slight bump texture - but this isn't used in the file as it requires a diffuse texture to drive the normals; you could, use displacement but that seems over the top for such a simple (and inaccurate) simulation.
I developed this for low-budget film work so I could get the sort of moon I wanted in the night sky without having to licence something pre-rendered. The addition of a evening or night-sky and passing clouds could really make this pop but I'll leave that for others.
Hopefully someone else can get some pleasure from this even if it's just to show the kids the phases of the moon in a simulation that you can run in both directions and have full control over speed, etc.