Honestly, as an American (California n almost all of my life), I find both “by accident” and “on accident” to generally sound stilted, though “by accident” seems natural in certain broader constructions, and “on accident” fits in the unique case of a direct contrast with “on purpose”. Generally, though, “accidentally” is the term that sounds right.
In America it's a regional thing. "By accident" is east coast, "on accident" is more midwest and west coast (though given that the west coast is full of transplants, there's a mix in usage". I've lived in CA for 16 years, but grew up in NJ and MD, and "on accident" still sounds weird to me.
Whilst I can understand the argument for the latter being similar to "on purpose", it will never stop sounding wrong to my British ears.