I read the following in a forum :
Merge sort is very efficient for immutable datastructures like linked lists
and
A quicksort will move records in to the middle of the list. In order to move an item to index X, it has to start at 0 and iterate one record at a time.
A mergesort splits the list into several small lists and only ever compares the items head of the lists.
The setup for a merge sort is typically move expensive than the iterated required by a quicksort. However, when a list is sufficiently large, or the reads are expensive(like from a disk), the time it takes for the quicksort to iterate becomes a major factor.