みなさま回答ありがとうございます。
1000以上メッセージがあるフォルダで試してみました。

まつもとさんの方法
-------------------------
Dir.chdir("/home/kikutani/Mail/outbox/cur")
a = nil
Dir.open(".") do |d|
  a = d.collect{|f| [f, File.mtime(f)]}.sort{|a,b| a[1] <=> b[1]}
end
a.each{|f|
  print f, "\n"
}
-------------------------
0.60s user 0.61s system 100% cpu 1.209 to$

わたなべひろふみさんの方法
-------------------------
a = Dir["/home/kikutani/Mail/outbox/cur/*"].sort {|a,b| File.stat(a).mtime <=> $
a.each{|f|
  print f, File.mtime(f), "\n"
}
-------------------------
4.17s user 6.61s system 100% cpu 10.769 t$

わたなべてつやさんの方法
-------------------------
Dir.chdir("/home/kikutani/Mail/outbox/cur")
dir = Dir.open(".")
for file in dir.sort {|a, b| File.mtime(a) <=> File.mtime(b)}
  print file, File.mtime(file), "\n"
end
dir.close
-------------------------
4.11s user 7.01s system 99% cpu 11.177 to$

というわけで、結果は同じなんですが、まつもとさんのがやけに速い秘密は?
collectを使うというのはシロートは思いつきませんね。

-- 
人生谷あり谷あり [Copyright (C) by Dr. Moro]

菊谷 誠(Kikutani Makoto)  kikutani / gol.com
                          kikutani / debian.or.jp (Linux関係のみ)