Code signing requires some verification that you are who you say you are in the real world so there is an additional cost.
Note that I'm not proposing this as a replacement for the current cert system (which you pay into), but as a replacement for unsigned executables.