Linux read disk cache and NFS

Answer A8 of the Linux NFS FAQ has an explanation.

A summary: it's up to the client to poll the server to ask for changes (by checking file attributes to see if they've changed since last time the client checked). Clients traditionally do that at regular intervals, but also any time they open a file. They also flush back any writes on close. This means that you get the results you'd expect as long as you ensure that no other client opens a file while one client holds it open for write.

This behavior is usually configurable using mount options, for example if you prefer stronger cache consistency at the expense of performance. See for example "man nfs" on a Linux client.