Interesting view.

I agree that position is not needed at all (a copy paste error), but my preferred form would still be

self.hand_velocity = {}
self.hand_effort = {}
for joint_name, velocity, effort in zip(joint_state.name, joint_state.velocity, joint_state.effort):
            self.hand_velocity[joint_name] = math.degrees(velocity)
            self.hand_effort[joint_name] = effort

as I find this far more legible.

By the way, why would this be slower? (there's only one zip operation and one loop in this form, instead of two)