Not exactly. The default URL when pulling ruby for example is docker.io/library/ruby => this is Docker registry, not Hub.
When an image is pushed to Docker registry, some events are sent to Docker Hub to say "here's a new version of that image" and Docker Hub is storing some information about it (some, not the whole image).
In a sense, Docker Hub is a materialized view on top of Docker registry to explore images in a more convenient manner. Yet, the action of docker pull/push goes through Docker registry itself.