On most *nix systems, listening on a port below 1024 requires super-user (root) access. All the ports above 1024 do not, removing the need to execute the ruby command using root access.
As far as why 3000 specifically, I don't believe it has any particular significance, although you'd have to research back to the early days of Rails to know if there was a specific compelling reason this port was chosen as the default.
Typically you only use that in development, because in a production environment you will have a web server like nginx that will operate on the normal web port (80)
-Jason