Если условие выполняется, то из массива удалится один элемент, оставшиеся часть сдвинется.
При следующей итерации i увеличится на один, но нам это не нужно, нам нужно еще раз прочитать тот же самый индекс, т.к. он имеет новое (сдвинутое) значение. Поэтому мы отнимаем единицу, чтобы индекс остался тем же самым в следующей итерации.
upd: i-- уменьшит значение после того, как передаст его в функцию. Т.е. в функцию передалось значение i, а после уменьшится на единицу.