Overall, your code is good, but there are a couple of performance improvements that were pointed out above. Here is a more explicit answer on how to improve the performance of the code provided.
Improvement 1: Eliminate subqueries in SELECT
Subqueries in the select statement referencing an external table will take a major hit in performance (row by row look vs set based join). In this case, we can avoid that by joining the Users table. We're assuming Id is the primary key in Users, so no duplicates to worry about. We are doing an inclusive join, which assumes all UserIds have a corresponding record in the Users table (typical foreign key constraint).
Improvement 2: Eliminate redundant external references
We reference the Posts table twice in the original query, once to limit to closed posts and another time to sort by the ClosedDate column. Instead, we can do an inclusive join to Posts, set our criteria either in the WHERE clause or in the JOIN, and do the sort, so that it is all done in one pass. We again assume that Id in Posts is a primary key, so no duplicates to worry about.
u.DisplayName AS Commenter,
--Improvement 1, inclusive join to Users
Users u ON u.Id = c.UserId
--Improvement 2, inclusive join to Posts
Posts p ON p.Id = c.PostId
c.Score > 0
AND p.ClosedDate IS NOT NULL --Improvement 2, Closed posts only
p.ClosedDate DESC --Improvement 2, sort by ClosedDate
Also, if possible, you can typically gain a performance improvement by moving the sort into the application layer.