Difference between bandpass filter and using fast fourier transform to extract power of frequency bands
Fast Fourier transform does not extract any frequency bands. It only shows the frequency content of a given signal. But while applying FFT, one should be careful about choosing the sampling frequency. As an example, if a signal contains a frequency range of $0-100\,\text{Hz}$ and $f_{max}=100\,\text{Hz}$ $$f_{max} = \dfrac{F_s}{2}$$ and the sampling frequency $F_s \geq 2\cdot f_{max}$ of the signal should be greater than $200\,\text{Hz}$ (according to Nyquist frequency rule). Then FFT will show all the frequencies present in the signal i.e. $0-100\,\text{Hz}$. 

If the sampling frequency is less than $&lt;200\,\text{Hz}$ then aliasing will occur and will provide an aliased frequency representation.

On the other hand, band-pass filters eliminate some frequency content of the signal. As an example say one signal has $0-100\,\text{Hz}$ frequency components but you are interested in exploring the frequencies of range $10-30\,\text{Hz}$, then one should use a bandpass filter.

As a system identification researcher, I can provide an example where FFT and bandpass filters are used. Say a signal has its main frequencies in the $10-30\,\text{Hz}$ range. But the signal is acquired with a sampling frequency of $200\,\text{Hz}$. 

Performing FFT will show frequency components from $0-100\,\text{Hz}$. Say there are measurement noises all over the frequency ranges. I use a bandpass filter to get rid of that measurement noise.