You can use different routing protocol instances if you want the router to receive routes from different sources without sharing the routes from one source to the other.
For instance, your router connects to one network on interface 1, and it connects to a different network on interface 2. By using a different process on each interface, the router can install routes it receives from neighbors on eack interface, but it will not share routes from the neighbor on interface 1 with the neighbor on interface 2, and vice versa. This can be useful if the network on interface 3 needs routes to both of the other networks, but you do not want the other networks to share routes with each other. This prevents your router from becoming a transit point.
There are other scenarios, but the one above is one of the more common scenarios.