Former SQL Server MVP Alex Kuznetsov investigated this quite a few years and back and published a blog post about his results. Unfortunately, that post does not seem to be available anymore.
But I have summarised his findings in one of my own article where I discuss IGNORE_DUP_KEY, and I quote that section here:
You may have a situation where key values are largely unique, but there are occasional duplicates, and you don't care which row you get. In this case, IGNORE_DUP_KEY not only makes the coding a little simpler, it is also likely to perform better than regular ways to remove duplicates such as such as DISTINCT or NOT EXISTS. Beware that as the frequency of duplicates increases, the performance benefit of IGNORE_DUP_KEY diminishes, as discussed this blog post from SQL Server MVP Alex Kuznetsov.