We have some best sorting methods like quick sort, merge sort etc., then why we need other sorting methods which perform poor?
Some kind of sorting algorithms may end up being visually more pleasing, giving nicer intermediate steps allowing for visual inspection of data where a human can recognize where in the process one is and analyze what goes wrong and sanitze the data accordingly.
I know I have used sometimes some costly sorting algorithm because it came in handy during game programming, giving just the right effect(revealing something on monitor, sorting inventory, etc...) on screen without it looking computer generated.
Like T.S. Elliot said:
The journey, Not the destination matters...
To see what I mean(source of images https://imgur.com/gallery/voutF):
We probably don't need all the O(n^2) ones. But some of them can be useful during the end-game. For example, a popular C++ standard library employs merge-sort to implement std::stable_sort, but switches to insertion-sort when a sub-array has length 32 or less.
But the real reason that we have "so many" sorting algorithms is that throughout the years, no beginner has been able to resist the urge to invent their own sorting algorithm.