At a doorway, on a crowded bus, or before a small request, 不好意思 makes room for the other person. It is the light “excuse me” or “sorry to bother you” of everyday interaction, and it can also show that you feel a little embarrassed.
对不起 is heavier because it accepts responsibility for something that went wrong. If you caused a loss, broke a promise, or seriously inconvenienced someone, 对不起 tells them you recognize the damage. The distinction is not a contest in politeness: match the words to the weight of what you did.