For when you want to supervise goroutines instead of processes (Presumably because processes are consuming too many resources).
As an example say you have a chat system, you will have a process for each user [0]. If you have a million users, you will end up with a million processes. The supervisor tree watches these processes, so if one crashes a single user may get logged out but everybody else will be unaffected.
[0] In reality you'll probably have it even more fine grained than that, so users will end up with multiple processes.