Seismic waves may exhibit significant dispersion and attenuation in reservoir rocks due to pore-scale fluid flow. Fluid flow at the microscopic scale is referred to as squirt flow and occurs in very compliant pores, such as grain contacts or microcracks, that are connected to other stiffer pores. We have performed 3D numerical simulations of squirt flow using a finite-element approach. Our 3D numerical models consist of a pore space embedded into a solid grain material. The pore space is represented by a flat cylinder (a compliant crack) whose edge is connected with a torus (a stiff pore). Grains are described as a linear isotropic elastic material, whereas the fluid phase is described by the quasistatic linearized compressible Navier-Stokes momentum equation. We obtain the frequency-dependent effective stiffness of a porous medium and calculate dispersion and attenuation due to fluid flow from a compliant crack to a stiff pore. We compare our numerical results against a published analytical solution for squirt flow and analyze the effects of its assumptions. Previous interpretation of the squirt flow phenomenon based mainly on analytical solutions is verified, and some new physical effects are identified. The numerical and analytical solutions agree only for the simplest model in which the edge of the crack is subjected to zero fluid pressure boundary condition while the stiff pore is absent. For the more realistic model that includes the stiff pore, significant discrepancies are observed. We identify two important aspects that need improvement in the analytical solution: the calculation of the frame stiffness moduli and the frequency dependence of attenuation and dispersion at intermediate frequencies.