A derived copy that can quietly drift out of sync
A search index is built from an underlying data source and structured for fast querying, which makes it, functionally, a separate copy rather than a live view of the source. Nothing about being derived from the source guarantees the index automatically reflects every subsequent change to it — including a change to who's permitted to see a given piece of content, which the index has no built-in way to notice unless something explicitly propagates that change to it.
This creates a specific, recurring gap: content remains findable and partially visible through search results well after access to the underlying content has been revoked at the source, simply because nothing re-synchronized the index or its own access checks to match.
Security trimming as the direct fix
Security trimming filters search results at query time, checking the searcher's current authorization against each result before it's returned, rather than trusting that the index only contains what the searcher should be able to see. This closes the staleness gap directly: even if the index itself hasn't caught up with a recent access change, trimming applied at query time still enforces the current, correct answer rather than whatever the index happened to contain at build time.