Как ускорить while loop?
includes()  и indexOf() каждый раз, считайте, пробегают, в среднем, по полстроки.
Представьте, что там дико длинные строки, гигабайтные.
Поэтому алгоритм желательно построить так, чтобы по каждой Войне и Миру пройтись 1 раз или меньше.

Условие хорошо сужает возможные символы до всего 26 букв латинского алфавита a..z

Рабочее решение под спойлером
Например, можно создать массив из 26 счётчиков и заполнять их из первой строки и опустошать из второй.
Вот такое моё решение прошло тест:
function scramble(str1, str2) {
  if (str1.length < str2.length) return false;
  const a = Array(26).fill(0);
  for (let c of str1) a[c.charCodeAt(0) - 97]++;
  for (let c of str2) a[c.charCodeAt(0) - 97]--;
  for (let n of a) if (n < 0) return false;
  return true;
}* 97 это ASCII-код маленькой латинской "a"
sort -> join и потом тупо сравнить две строки, безо всяких циклов