Writing procedures in TSQL seems much more natural since it's so close to bog-standard SQL. Here's the body of a procedure that returns multiple result sets in TSQL:
SELECT Id, Name FROM dbo.AppType;
SELECT Id, AppTypeId, Name FROM dbo.App;
With pgsql you have to use `RETURN QUERY` and both tables have to have the same column definition. If you want to do this in Postgre, you have to resort to using a completely different programming language such as Javascript via plv8 as you mentioned.The code to do the above in Javascript is not as straight forward. All of a sudden, you have to know a completely new object model which you then use to prepare and execute statements or control cursors. The code to return multiple results is no longer straight-forward SQL-like code...it's Javascript.
Other languages can be executed in the MSSQL process too though, if that route is preferential. .NET languages are the standard there, but C++ can be used and even Node via Edge.js.