Un amigo que está aprendiendo Ruby como su primer lenguaje de programación me hizo esta misma pregunta mientras revisaba Strings in Ruby en la serie Ruby Koans. Se lo expliqué usando la siguiente analogía;
Tiene un vaso de agua que está medio lleno y necesita rellenarlo.
La primera forma de hacerlo es tomando un vaso nuevo, llenándolo hasta la mitad con agua de un grifo y luego usando este segundo vaso medio lleno para rellenar el vaso. Hace esto cada vez que necesita rellenar su vaso.
La segunda forma de tomar su vaso medio lleno y simplemente llenarlo con agua directamente del grifo.
Al final del día, tendría que limpiar más vasos si elige elegir un vaso nuevo cada vez que necesite rellenarlo.
Lo mismo se aplica al operador de pala y al operador más igual. Además, el operador igual elige un nuevo 'vaso' cada vez que necesita rellenar su vaso, mientras que el operador de la pala solo toma el mismo vaso y lo rellena. Al final del día, más colección de 'vidrio' para el operador igual de Plus.