The biggest difference is that you can reattach to your screen or tmux sessions from other terminals (be they terminal emulators, VT's, SSH sessions, or even real serial terminals), but cannot do so with tabs in a terminal emulator. This may sound simple, but it brings up one of the biggest advantages to using screen or tmux, especially if you're dealing with a remote system: It can stick around beyond the duration of your current login session, which is immensely useful for a number of reasons.
There are a couple of other differences though:
- Using screen or tmux means you will always have exactly one extra process per screen or tmux session (but not per window/tab). Dependent on the terminal emulator you use, you might have no extra processes, or you may have more than one extra.
- Using screen or tmux gives you some extra functionality that most terminal emulators don't, such as split windows and the ability to send a BREAK on the application in the tab.
- The hotkeys used to switch windows/tabs differ (though both can generally be reconfigured pretty easily).
- You can use screen and tmux from any terminal session, but can only use tabs when using a terminal emulator.
- Screen (and possibly tmux) provides a terminal locking feature. Essentially, it's equivalent to the screen lock you see in most desktops.
In both cases, each window/tab ultimately has one associated pseudoterminal (usually abbreviated PTY). The real difference here is just what's actually controlling which pseudoterminal your input is going to and output is displayed from. The exact mechanics of how a pseudoterminal works are a bit complicated, but well documented multiple places online. The basic idea is that it gives a process a way to pretend to be an actual hardware terminal so that it can run another process that expects to talk to a terminal.
Neither option is really all that much more efficient in terms of system resources, and which is more efficient in terms of UX is largely dependent on the user themself (for example, screen is more efficient for me, because I'm used to all the default key bindings).