В чем разница между «i = i + 1» и «i += 1»?
Никакой разницы. В ruby нет i++, а для сокращения 'i = i +1' можно использовать 'i +=1'
Можете посмотреть документацию, например здесь: https://www.tutorialspoint.com/ruby/ruby_operators.htm
Если не ошибаюсь, то i = i + 1 создаст в памяти 2 объекта, а i += 1 лишь добавит единицу к уже имеющейся в памяти переменной