It's not that the key is generated in Javascript; it's more that the key is generated (and therefore known) by someone who is not you.
Maybe you trust StartSSL with your private key, maybe you don't, but in either case not giving them your private key is preferable.