Range query against date column works very poorly compared to fixed values.
In general, you cannot assume that two logically identical predicates will get estimated the same way. So x < date < y is not necessarily the same as writing the intervening dates out by hand, and using IN. If I remember correctly, there was some logic of this sort for integers enabled under the original CE model when TF 2301 was enabled, but I do not recall seeing that this would apply to date data types. You could try it though.