What are some scenarios for which MPI is a better fit than MapReduce?
Almost any scientific code — finite differences, finite elements, etc. Which kind of leads to the circular answer, that any distributed program which doesn’t easily map to MapReduce would be better implemented with a more general MPI model. Not sure that’s much help to you, I’ll downvote this answer right after I post it.