There's no difference between a good rubyist and a good programmer. By definition, a good rubyist will have a solid understanding of algorithms, OO, design patterns and anything else that makes one a good programmer.
According to Zed in the article, `for` requires fewer concepts to be fully explained, which `.each` only achieves teaching people to be "Good little rubyists".
One must choose between `for` and `.each` (lets assume we agree that teaching just one is the best approach), so you optimize for your goal of "good programmer", over "good little rubyist".