Ruby 3.4 adds it for the block parameter, so users.map { it.name } reads almost like a sentence. I like it better than _1, which always looked like something the parser left lying around.
A few rules from the Proc docs worth knowing. it only exists in a block with no explicit parameters. It's a soft keyword, so a local variable named it wins, which is a small surprise waiting for anyone who already had one. You can't mix it with _1 in the same block. And unlike numbered parameters, blocks using it can be nested, which is the one rule I'd have written the other way round. In nested blocks each it means its own block's argument, and the reader has to count braces to know which.
My old-fashioned habit stays. One line and one obvious receiver, it is fine. Anything longer, or anything nested, gets |user|. It costs a few characters, which I've never minded.