Yes, a page blocked in robots.txt can still end up in the index, typically as a bare URL with no description and no snippet, which surprises people who expected the block to keep it out entirely. The behavior is consistent enough to plan around: blocking in robots.txt controls crawling, not indexing, and those are not the same thing.
The mechanism is straightforward once you separate the two actions. A robots.txt disallow tells search engines not to fetch the page’s content. It does not tell them the URL should not appear in results. So when other pages, on your site or anywhere else, link to that blocked URL, search engines learn the address exists from those links even though they were told not to read it. With no permission to crawl, they cannot pull a title or description, so the listing shows up stripped down, usually just the URL and sometimes a line noting that no information is available. The page is in the index; it simply has nothing to show.
This is exactly why a robots block is the wrong tool when your real goal is keeping something out of results. The block can suppress the snippet while leaving the URL discoverable, which is often the worst of both worlds. To genuinely keep a page out of the index, you want a noindex directive on a page that search engines are allowed to crawl, so they can fetch the page, read the noindex, and honor it. Blocking in robots.txt removes their ability to see that instruction, so the page can linger in the index indefinitely.
If you have a page you truly need out of search, audit it now: confirm it is not disallowed in robots.txt, then apply noindex so the directive can actually be read. Save the robots.txt block for the case it is built for, conserving crawl on pages you do not mind being indexed URL-only, and never lean on it to hide a page from results.