Most CFD codes use FVM. Most computational structures codes use FEM. Why is the FEM not frequently used in CFD, and why is FVM not frequently used in FEM?
The finite element method is actually quite widely used in fluid flow problems, for example for the Stokes and Navier-Stokes equations.
The delineation between the methods is more along the following line:
The finite element method is very well suited for second order (in space) differential equations. That has something to do with the fact that trial and test spaces can be chosen the same in that case, and consequently the FEM is a tool that is well suited to problems such as elasticity and more generally structures, but also for the Stokes equation or the Navier-Stokes equations in fluids.
Many other fluid flow problems are described by first order differential equations (think, for example, the Euler equations of gas dynamics) or equations in which the first order terms are dominant (e.g., for the compressible Navier-Stokes equations in the transonic regime). For these cases, solutions are often discontinuous -- for example in the form of shocks -- and the Galerkin method (on which the FEM is based) produces oscillatory approximations that are not useful in practice. One can fix this through stabilization techniques developed over the past twenty or so years, but at least historically the preferred approach is to base methods on the conservation properties that underlie the equations -- i.e., to use finite volume methods.
The most fundamental reason is that (static) structural problems often resolve themselves into finding minimum energy configurations and this is easily translated into minimizing the energy of a FE representation. This almost never happens for fluid flow, even if is steady, because of the convective terms. There are by now many FE codes for fluid flow (such as the discontinuous Galerkin method) that have their enthusiasts, but for most engineering purposes they are regarded as too expensive.
The most obvious advantage of FVM is that the conservation law(the flux is canceled between the interface of two neighboring cells) is satisfied automatically during the discretization process, no other special mathematical treatment needed. This property is very important for the fluid flow problem to satisfy the mass continuity equation.