Network and computer speeds. The response time from the app, the database, etc. This is true even if you are manually executing the test.
It also depends on the wait statements you have included.
Not loading the add-ins that your test does not use helps too.
Descriptive programming steps take longer than regular ones to execute
Capturing screenshots at runtime through QTP also consumes time
Disabling smart identification also speeds up the QTP script running time