If having a condition in the catch body before the rethrow is sufficient to avoid RSPEC-2737, having the same condition in the when clause should probably have the same effect.
In your first example the exception is always caught and only rethrown under a specific condition satisfying RSPEC-2737
In your second example the exception is only caught under a specific condition and always rethrown (without any additional logic) breaking the rule.
This looks correct to me, but please let me know if I’m missing something?