> While experimenting a bit I discovered that this script hangs in the line
> that puts "start" (version 1.6.7 on win and linux):
[...]
> Any ideas why?

Doesn't hang here...

$ ruby pipe.rb
6
17
21
9
26
read: <<start
>>
30

$ ruby -v
ruby 1.6.8 (2002-12-24) [i386-linux]

Maybe you need to improve your ruby by 0.0.1 ;)