There is a ton of passion about this topic online, and often between marketing departments in countries.
In a perfect world, for Google, you would have local content (unique by country), local domains (.ca and .com), local addresses and phone numbers, and the physical servers would be in the country.
This has to be balanced against multiple investments, management of the two, existing rank of a domain or domains, plans for multilingual in both countries (spanish, french), expansion to new countries, etc. If you already have a .com domain (or .ca) which is well performing in both countries, don't split it. Build a sub off of it (.com/en-ca, .com/en-us, etc.). Building off of one domain, with folders beneath it, provide nice flexibility for management, and can reduce costs. Additionally, you can target the content well. You may, and emphasize may, lose some SEO value, but this can only be quantified at your business level versus effort. Mozilla shows a nice example of one site with languages per folder. (No you are likely not Mozilla, but you get the point).
Your best efforts are to focus on content, solid architecture, great conversion rates, and ensuring localization of targeting and linking. These will have larger impact than folder v. TLD. (IMHO).