In computer science, best practice says that a boolean flag should default to false with a value of true meaning 'change default behaviour'.
For example, rather than function ShowUserDetails($ShowAddress = true)
you should use function ShowUserDetails($HideAddress = false)
.
This also generally applies to user interfaces. The checkbox should default to unselected, to reflect the common/default behaviour, so checking the box is allowing the user to override the default.
In both the programming case and the user-interface case, the reason for this is that user-expectation equates checking a box (or supplying an optional argument) as being equivalent to 'turning on'. It is counter intuitive to have to actively 'turn off' something which starts off as being on.
So, the reason this is a sensible default is because it fits more naturally with the user's expectation.
A good example is a set of user preferences - if a new user goes to their preferences section and sees a bunch of options, some of which are already ticked and some which aren't, this is much less clear than if all options start off unchecked and they choose which ones they want to enable. In most cases, this can achieved simply by changing wording. So instead of 'Enable full summaries' defaulting to true, you might use 'Enable brief summaries', defaulting to false. (Note that you don't want to switch this to 'Disable full summaries' if all your other options start with 'Enable' - that would be even more confusing!).
Obviously, there are some exceptions, e.g. when you have a setting underneath a post to 'Send me a copy by e-mail' and you have a user preference to set the default value of this field for new posts, then the default value should respect that user preference.
Does all of this mean that checkboxes that are default-enabled are a dark pattern? Not necessarily - it is just that it is better/more intuitive UI design; it isn't necessarily malicious.
What is a dark pattern is to have controls in a default state which is contrary to what the user wants/expects. The classic example being Opt-in to mailing list? [x]
(i.e. where the box is pre-checked). However, if you follow good UI principles, as described above, you could just as easily rewrite the question as Opt-out of mailing list? [ ]
(box unchecked). The dark pattern is that the form auto-subscribes the user to the mailing list if they don't take explicit action, rather than the use of pre-ticked checkboxes, per se.
(Note that radio buttons are a different beast. These are used to select between a set of options, so it makes sense to have one option selected if there is a common default.)