My understanding of the rationale according to https://beta.ruff.rs/docs/rules/raise-vanilla-args/ it's to prevent overloading exceptions to be used broadly, with the specifics of the exceptions being defined by the string passed to them.
In general, I agree with this, but for NotImplementedError, do we really want to encourage people subclassing it for every feature that they haven't built yet? I treat NotImplementedError as a slightly nicer sys.exit("This is not supported yet")