So it seems special readWrite privileges are needed to execute mapReduce on system.profile collection. So I got the query to work eventually after checking through:
Because you have no suitable index on the table, you get a full table scan.
The table scan is going parallel, which means that access is happening out-of-order. You could solve this by using OPTION(MAXDOP 1), but that is just a band-aid.
Your best bet is to create an index to serve this query, the idea being that the query only needs to do a point lookup on ...