In an online shop shipping physical goods you really need a shipping address, otherwise it's hard to know where to send the goods. In a few cases customers might want to enter a different billing address, but mostly not (make sure by doing some research in the existing customer database if you can). So it's preferred to give the option "[ ] Send invoice to a different address"
So you're right to default to both being the same which makes the form look much easier in the beginning. Those users actively selecting to enter a different address will not be surprised if the form has more fields after they ticked the checkbox. In other words, the default should be a checkbox that is not selected.