I believe that must-revalidate means :
Once the cache expires, refuse to return stale responses to the user
even if they say that stale responses are acceptable.
Whereas no-cache implies :
must-revalidateplus the fact the response becomes stale right away.
If a response is cacheable for 10 seconds, then must-revalidate kicks in after 10 seconds, whereas no-cache implies must-revalidate after 0 seconds.
At least, that’s my interpretation.