I'll have a go:
A server farm is a group of servers, which may or may not be clustered, that together offer a higher computing capacity for a particular goal than an individual server. An example is a Web farm, which typically consists of a number of load-balanced Web servers, each with the same content and configurations.
While a farm may be clustered, typically a cluster consists of servers that are configured in a failover scenario, for instance active/passive, meaning that, say, 1/2 the servers are on active duty while the rest becomes activated only when the servers on active duty are no longer accessible. So when a server in the cluster crashes, it is not a problem because another server takes over.
A grid then is typically a configuration of computers that work together (in parallel) to solve a complicated task, such as organic chemistry computations or playing chess against the world champion. The work is divided into parts and each computer takes on a part and reports its findings to the main node which then synthesizes the final result.
I hope this helps.
Some links:
Wikipedia definition of server farm: http://en.wikipedia.org/wiki/Server_farm
Wikipedia definition of computing cluster: http://en.wikipedia.org/wiki/Cluster_(computing)
Wikipedia definition of grid computing: http://en.wikipedia.org/wiki/Grid_computing