В твоём примере последняя итерация лишняя - 
i выходит за пределы массива, тебе надо было написать либо так:
function funk (arr) {
  for(let i = 0, length = arr.length - 1; i < length; i++) {
    if(arr[i] === arr[i+1]) {
      return true;
    }
  }
  return false;
}
либо, лучше, так:
function funk (arr) {
  for(let i = 1; i < arr.length; i++) {
    if(arr[i - 1] === arr[i]) {
      return true;
    }
  }
  return false;
}
Также заметь, что в современном JS никто не использует сравнение с приведением типов(
==) из-за его ненадёжности, только полноценное сравнение - 
===.
"Пример из интернета" - полная фигня. Кто-то впихнул 
костыль на ровном месте, решая ту самую "проблему", что имеет место быть в твоей реализации, вместо того чтоб подумать и написать один из предложенных мной выше вариантов.)
Ну по крайней мере теперь ты знаком с профессиональным термином 
костыль и как его применение выглядит в коде.)