1. It's written in Python, which makes it slower and prone to bootstrapping issues.
2. It doesn't manage your Python installation, which necessitates the use of a tool like pyenv.
Rye sidesteps both of those by (a) being written in Rust and (b) trying to solve all of the problems solved by poetry and pyenv in one go.
With rye, I activated a virtualenv and then created a new project, it proceeded to setup its own .venv within the project instead of just using the one that was already activated.
As for managing Pythons, I would consider this to be orthogonal to packaging, and the default system Python is often good enough.
I also don't see why leaning into python being a wrapper around rust/cpp/c is a bad thing. Each language has its own niche and packaging/bootstrapping is more of a systems level language problem.
The latest tools are not always the best tools, old and boring, as long as they work for you are perfectly fine.
What we want is for a declarative toml file to reliably reproduce dependencies regardless… sadly even across very similar machines it fails to do so.
Unlike, say NPM, Python doesn’t just download a versioned set of python files depending on your lock file