Accepting “done” product backlog items, user stories, or features should be an ongoing activity for the Product Owner.
The one thing that should not happen is for the Product Owner to see the completed items for the first time during the Sprint Review. I often see an antipattern where the PO acts as the stakeholder. Among other things, the Sprint Review is for the Stakeholders, not the Product Owner, to inspect the product increment and to provide feedback. Thus, the product owner should already have seen, inspected, provided feedback, and accepted the product backlog items.
Tip: Add an “accepted” column to the Sprint Backlog for the PO to move items into as they are accepted throughout the Sprint. For distributed teams, consider having the dev team record a short desktop share (not more than a few seconds long) demoing the item(s) as they are “done”. This way the PO can play it and compare it to the acceptance criteria. This is not meant to replace real-time communication and collaboration between the PO and the Dev Team, but a way to keep the flow, especially when dealing with time zone differences.