Rubyの源流はPerlなんだけど、
元のPerlが0や"0"を偽として扱うことによっていろんな弊害を産んでいたから、
Rubyではfalse,nil以外偽と扱わないようになったんだと覚えてる。

例えばwhile($dest = $src){ .... みたいな制御構文で、
$srcが何かのタイミングで"0"になったらいきなりループ抜けてしまったり、とか。