Disambiguation is precisely what it's not great at, I think. I would often see stories like "Given a logged in user..." and the details of
what kind of user it was would be buried in a step definition somewhere.
The restricted nature of the language encouraged this "dumbing down" of the high level requirements to the point where you couldn't really have intelligible conversations about gherkin scenarios without referring to step definitions, so the whole exercise becomes kinda pointless.
If your software scenarios had even slightly complex preconditions/steps then most people would just shove that complexity in a definition and paper over it.