наверное, запутало то, что функция возвращает функцию.
inBetween(a, b) возвращает функцию, заточенную под конкретные a и b.
И уже эта свежесозданная функция используется в качестве фильтра для arr.filter().
На вход возвёрнутой функции и будет попадать (item, index)