First, I simply don't agree with the statement that "x += 1" is a rarity
in readable code.  But that's not something we can measure without an
objective measure of readibility, so let's move on.

However, to address the specific example, I would just use each_with_index:

> counter = 0
> array_of_stuff.each {
>     |element|
>     if elementIsScrewy(element)
> 	raise "Whoa, element is screwy! #{element.inspect}, " +
> 	    "look for the problem #{counter} elements into the page"
>     end
>     result = doSomethingWithElement(element)
>     ...
>     counter += 1
> }

array_of_stuff.each_with_index {
    |element, counter|
    if elementIsScrewy(element)
 	raise "Whoa, element is screwy! #{element.inspect}, " +
 	    "look for the problem #{counter} elements into the page"
    end
    result = doSomethingWithElement(element)
   ...
}