s+="hogehoge"
はRubyのパーサが中で
s = s + "hogehoge"
と置換していて、Stringのインスタンスを毎回生成するので遅い。

Javaで
s+"hogehoge"+"hugahuga"
としたときに内部で(俺の記憶では)
new StringBuffer(new StringBuffer(s).append("hogehoge")).append("hugahuga")
となっていたのと似ている。

まあ何カ所か短い文字列を結合するだけでは違いは出ないと思うが。
あと、実用できないけど、この場合
x = "aaa...."
for i ...
a << x
のほうが早いのではないかと。