That's merely syntax sugar. Haskell doesn't even have this sugar and so in a monad you have to bind explicitly, and it's fine. It's not a pyramid of doom.
Let's consider a language like C++ where it has none of those syntax sugars. The absl::StatusOr is a class with the idea that errors should be values. The standard library has std::expected since C++23. So where is your pyramid of doom?
Short circuiting on `Either` is a specific case of this. You can define your own EitherBind in any language.
Now you can bind over Either to your heart's content without needing an encoding of Monads in your language.