Стандартная функция Kotlin в этом случае не только улучшит читабельность, но и производительность. Оптимизированная реализация Java, которая делает то же самое, что и функция Kotlin contains(), требует написания еще большего количества кода или использования внешней библиотеки, такой как Commons Lang:

// Java
public static boolean containsIgnoreCase(String str, String searchStr) {
   if (str == null || searchStr == null) return false;

   final int length = searchStr.length();
   if (length == 0)
      return true;

   for (int i = str.length() - length; i >= 0; i--) {
      if (str.regionMatches(true, i, searchStr, 0, length))
         return true;
   }
   return false;
}
...
if (containsIgnoreCase(name, firstName)) {
   ...
}
// Kotlin
if (name.contains(firstName, ignoreCase = true)) { ... }

Интуитивно понятный подход к преобразованию обеих строк в нижний регистр сначала требует создания 2 временных экземпляров строк и преобразования каждой строки в нижний регистр, в то время как функция Kotlin будет сравнивать обе строки напрямую без предварительного преобразования.