They are necessary to get Microsoft to sign your keys, which is necessary to get Linux distributions to boot on modern hardware without getting the user to install custom keys (and that is a requirement because there is no standard way to configure UEFI Keys -- that's why the mokutils exist).
And I have to stress that they do actually solve real security problems and aren't of themselves a bad idea. The fact that you can inject unsigned code into the kernel as root is not a good thing.