The two don't do the same thing.
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
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.