Это удобно использовать в случае использования именованной функции в качестве коллбека для forEach.
Так как функция может быть определена где-то в другом месте (например мы ее импортируем из другого модуля), она может не иметь доступа к области видимости в которой хранится массив использующий ее.
Также, даже если из функции доступен массив из внешней области видимости — все равно хорошим тоном считается использование аргумента функции.
arr.forEach(doSomeStuffForEveryItem);
function doSomeStuffForEveryItem(item, i, arr) {
теперь тут arr доступен через переменную.
}