Depending on the timeframe, this sounds somewhat reasonable.
I'm assuming at the point where you make the offer, you and the candidate have established that you want to work with each other, and already agreed on compensation and terms.
Given that, you're already past the negotiation stage, and there is a time limit on when the deal can close. You need to hire one of your candidates, so it makes some sense to say "you have some-number-of days to accept this offer."
The key here is that you've already negotiated the agreement. In the past, I've had companies make me exploding offers with zero opportunities for negotiation.
Every time I've rejected such an offer, and every time it's been the right decision.