I have to say that, after working with Ruby (and knowledgeable coworkers) for a few years, I don’t know of anything better than @jennifer’s suggestion of writing tests to cover your code, if you want to find run-time errors.
Rubocop does have some lint checks, and can identify unused variables, assignments in conditional statements, syntax errors, etc. when you run it, but the suite of linting checks that it runs may appear minimal in comparison with a compiled language like Go. It does at least cover some of the cases you highlighted as being of interest to you, so I’m not sure if that’s helpful.
I would love to hear about a tool that could identify run-time errors for Ruby, though, if anyone knows of one.