stats usually does less, so it'll be faster than transaction which is doing more work. For example, transaction will build multi-value fields for you while stats only builds those fields you specify.
As for using MapReduce more efficiently, grouping events together with transaction requires knowing all the events in one place - the search head. stats has less complex features - e.g. no maxspan, maxpause, non-unique identifiers - that allow a lot of work to be done on the indexers.
To sum up, if stats does what you need then it'll be faster almost every time.