Here are the different ways I've been able to find fusion cores so far:
Merchants - At least a couple merchants I've come across sell fusion cores. This currently appears to be the easiest way of obtaining cores if you have the caps.
Fusion Core Reactors - Not sure if this is the right name but they are big light green generators (like the one you use to get a fusion core in the mission where you meet Preston Garvey) and are found in many buildings throughout the Commonwealth and always give 1 fusion core. The difficulty in obtaining cores in this way varies but if you're an avid explorer you who searches every building (like me) you should have a good stockpile of cores in no time.
Power Armor - At least a couple of Power Armor suits I've come across have already had at least a partially charged core. Since you only need to power one suit at a time I make sure to take the core out of suits I'm not using. Also, if you equip a companion with power armor they will need a fusion core but don't seem to drain it so it's best to just give them one with low charge.
Sentry Bots - These guys are pretty rare and super hard to take down (the one I encountered was hit with 2 mini nukes and still had to be finished off with a laser rifle), but they drop 2 fusion cores and some other goodies. Theoretically, if they respawn somehow you could farm them for cores (albeit at a cost of ammo and stimpaks).
Random Places - I have been able to find a few cores in random containers or just lying on a table or the ground but it's very rare. High tech or military related buildings and locations seem to have a better chance but I've also found a few in people's houses. Not sure if the chance of finding cores is increased with luck or with some perk but it's definitely worth investigating.
As far as the most efficient way to get cores, I think that depends on your play style. Just exploring as many areas as I can has worked out pretty well for me; but if you're more charisma oriented then getting a deal on cores from merchants might be best, or if you're focusing on combat then tracking down sentry bots or other rare, hard-to-kill baddies could net you a good amount of cores.
As a bonus, here are also a few things you can do to extend the life of a core:
Repair Bobblehead - Found at the top of the Corvega Assembly Plant, it permanently increases the duration of your fusion cores by 10%
Nuclear Physicist Perk - With each rank it increases the duration of your fusion cores. At full rank it doubles the lifespan of your cores.
Fusion Core Reactors??? - I've heard a rumor that placing a core back into a reactor and pressing the button next to it will allow you to recharge the core. I haven't tested this myself but if true it could help alleviate the issue of finding cores in the first place.