Stored procedure performs worse than straight query
This might be a case of parameter sniffing.

You could try simply defining two local date variables at the top of your stored procedure, and assign them the value of the two input date parameters. Then replace the usage of the input parameters in the stored procedure code with those new local variables. 

This has usually done the trick for me in the past, when dealing with parameter sniffing.