email = 'a' is sargable; lower(email) = 'a' is not unless an index on lower(email) exists. Casting the column or a leading % also breaks it.