What's the difference between launchd and folder actions?
Launchd and Folder Actions are two vastly different concepts.
Folder Actions
Folder Actions allow you to attach actions in the form of Apple Scripts folders which get triggered if the content of the folder changes. Typical use cases are e.g.

a folder to auto-upload photos to a website
removal of file attributes (e.g. the &quot;downloaded&quot; attribute)
triggering import into Evernote
etc.

launchd
launchd is a system-wide feature to run and control system-level background tasks. These can be either running all the time or get triggered by specific events (e.g. a connection request coming in over IP, a changing folder, a specific point in time etc.). OS X makes heavy use of this concept for all kind of things, have a look at the names in /Library/LaunchAgents and /Library/LaunchDaemons to get an idea of functionality depending on launchd.
Because launchd is a system service running in the background all the time it can't be accessed by the user directly. To send commands to launchd, the launchctl command is used.
Answers to specific questions

Do folder actions use launchd?

Most probably not. You can use launchd to do everything folder actions can do but at least on a level visibile to the user these are two different concepts

Is one more efficient than the other?

No difference here, both get triggered by OS X upon special conditions.

Is one more powerful than the other?

launchd is definitively more powerful.

Is one used more over the other?

In a newly installed system there already is a great number of active launchd scripts but no folder actions. Because the later must be explicitely activated and configured by the user, it's probably a safe guess that launchd is used more often.