Что ж, удивительно, что это всего в 30 раз медленнее, поскольку при проверке, является ли определенная кодовая точка буквой или нет, нужно учитывать в 1000 раз больше символов, чем просто a-z
Тем не менее, вы можете немного улучшить свое регулярное выражение:
$content=preg_replace('/[^\pL\p{Zs}]+/u', '', $content);
должен ускорить его, объединив смежные разделители без букв и пробелов в одну операцию замены.