C, while much faster, makes it far more natural to repeatedly scan lists rather than store a key in a hash and just check exists.
The result is that the same person in many circumsances will find that their Perl code not only is easier to write and read, but outperforms what they would have written in C. Sure, if they wrote their C carefully they would beat Perl every time. But natural Perl idioms tend to be better algorithmically than the natural C approaches, and algorithmic efficiency trumps raw performance.
(This does not hold true for all programmers, YMMV, etc. But it is surprising how often it is true.)