Each instance of SharePoint can spawn between 8 and 20+ databases and not all databases are created as part of the SharePoint installation (i.e. Web Applications and Service Applications are usually configured later as needed), I would strongly advise putting each SharePoint farm in its own instance of SQL.
Another "neat" feature of SharePoint is that, for certain operations that ask for a database name, if you specify a database name that already exists then SharePoint will happily append new data into the old database without warning you, possibly resulting in two farms being tied into the same database. This risk is also greatly minimized when the farms are in separate instances.
If you are a "Separation of Duties" shop, then odds are also good that you have security requirements where certain people can only take certain actions in certain environments. Having all of your farms in the same instance makes managing this a great deal more complex.
If one of your environments is Production then you also have to worry about overall performance as SharePoint hits TempDB quite hard. Having all three farms in one DB Instance means that all farms will be fighting over a single TempDB. This means that normal developer activities could easily bring your production performance to a halt.
Multiple instances is additional overhead but makes management, backups and security a great deal easier. SharePoint also performs better this way.