Why Not Just Use D1?
For a plain counter, D1 may be enough. The main advantage of a Durable Object is not only persistence. It is ownership and coordination.
D1 = table, rows, SQL, query model DO = identity, owner, behavior, coordination model
When all requests for one identity pass through one owner, the object can protect its own transitions and coordinate multiple clients.