Arduino I/O ports are only capable of delivering a maximum of 40 mA of current through any GPIO pin. Since even small 5V DC motors can draw as much as 50 mA or more, it is easy to see why you can’t drive a motor directly from a GPIO pin. Even if you are able to find a DC motor that requires less than 40 mA, there will be other issues in connecting a DC motor directly to an Arduino.