Queries not Running in Prod
Two likely possibilities.
Blocking
Your production machine probably has a lot more going on than your test/dev machines.  You could simply be seeing blocking.  Run your query in one window and this in another.
SELECT * FROM sys.dm_exec_requests WHERE blocking_session_id &gt; 0

If you are being blocked you may need to look at what's blocking you and how long it's taking to run.
Configuration differences
This one covers a LOT of possibilities.  It could be a difference in the max memory as Kin suggested or any number of other possibilities. See:
difference in execution plans on UAT and PROD server
For example if the max degree of parallelism is 1 or the cost threshold for parallelism isn't the same on both servers you could be getting a single threaded plan instead of getting a parallel plan.  It could even be the reverse.  I had one case where the parallel plan was quite a bit slower than the single threaded plan.
Compare the results of this query between the two servers:
SELECT * FROM sys.configurations

Check any differences and see if they are affecting your query.