Сравнение строк не медленнее, чем в любой скомпилированной программе, но обычно вы сравниваете много строк (скажем, каждую строку в таблице), и это медленно.
Что касается циклов: БД не является компилятором. Он читает ваш SQL, а затем интерпретирует его. Если бы вы могли посылать скомпилированный код и выполнять его БД, вы бы не заметили разницу в скорости, но БД должна интерпретировать один и тот же код снова и снова.
Если вам повезет, БД преобразует цикл во некоторую внутреннюю форму (байт-код или структуру данных), но это а) занимает больше времени, чем просто наведение процессора на какой-то код, и б) ему все еще нужно работать больше кода для интерпретации байтового кода или структуры данных. Для циклов он должен оценивать условия для каждого раунда.