Because block evals create closures, objects created in the surrounding scope will not be garbage collected, even if they are never used in the block evaled code.
In this simplified example, it's not a major savings, but one application using Sequel measured a savings of half a megabyte of memory per process by moving block evals to a separate method.