"deliver exactly once" is still an unsolved problem in computer science, so any webhook service is left with the options:
1.) only attempt once
2.) attempt x number of times
3.) attempt until delivery is confirmed
All of these can be done, but there are nuances and complications. It's not trivial, which is why we don't see more of it.
Also, and perhaps most obvious, if they force you to poll, they are putting the burden of development on you, whereas if they offer webhooks, they have to take on the cost of development themselves.