How can a microcontroller be more efficient than an FPGA?
See When can FPGA&#39;s be used and Microcontrollers/DSPs not?

Microprocessors will nearly always win on throughput/watt. For total throughput, you can get quite good results with DSP chips, larger microcontrollers, or ARMs with onboard graphics cores. Although it may be hard to repurpose the graphics cores to other applications if the platform doesn't support CUDA or similar.

FPGAs win on latency, especially if you want to guarantee low latency response to lots of inputs. You can only have one highest priority interrupt on a microcontroller. FPGAs are also good if you want a fixed-function process that doesn't use a lot of RAM, such as a compression algorithm from some sort of signal capture.