> that draws product designers to keep reaching for that horrible UX pattern
Because in almost every GUI library, they are the default built-in "alert" setup that can be used. Almost any other alert system other than a "popup" has to be coded, and the designers and coders take the easy way out and just use the "built in popup widget" already in the library.
It's more that modal alerts are easier to reason about. With some other kind of notification you'd need to think about what the user should or should not be able to do until the alert condition is dealt with and what the consequences of dong it without dealing with the alert should be. It's generally easier to make the user deal with the special condition now so that the rest of the code can assume it either doesn't apply or has been dealt with.
Because in almost every GUI library, they are the default built-in "alert" setup that can be used. Almost any other alert system other than a "popup" has to be coded, and the designers and coders take the easy way out and just use the "built in popup widget" already in the library.