For instance, in the case of PostgreSQL, it is entirely acceptable to use a newer client to connect to an older server; but if you do the opposite, using an older client to connect to a newer server, you would get a warning.
My gut feeling is that, by off-loading the responsibility of ensuring backward-compatibility to the client, it helps keep the server codebase simpler and therefore ensure the server's stability and bug-freeness.
Are there other factors?
In the case of instant messaging systems such as WhatsApp, Slack, etc, we often find that the reverse is true: you can use older clients to communicate with the newer server up to a certain period. That seems to be out of necessity because there are so many users and the IM service provider can't anticipate when the users update their client software. I'm not sure whether the fact that there is usually[1] only one server provider is a contributing factor.
[1] I know that some instant messaging systems can be deployed as private instances.