To give a different perspective. I always forgot to check the box, and now noticed a significant decrease in randomly left over branches. So it's working out pretty well for me.
It seems like it would be possible to have the best of both worlds by defaulting to checked for first PR from a branch, but defaulting to unchecked for subsequent PRs from the same branch (because if you didn't delete it last time, you probably don't want to delete it this time).
I think it's not bad to have it checked by default but a bit more intelligent it surely can be.
The biggest annoyance and source of confusion is when you make a merge request based on a protected branch. The checkbox is still there and checked but it won't actually delete the protected branch (well, that's good ;-)).
In that case the checkbox should just be not displayed at all.
Or rather, displayed but disabled with a message explaining why it can't/won't be used.
Great suggestion, thanks!
Created https://gitlab.com/gitlab-org/gitlab-ce/issues/34248 to track.
But if we can't make the behavior more intelligent we will probably have to add an option.