There has been a challenge for many decades to understand how heterogeneities influence the behavior of materials under shock loading, eventually leading to spall formation and failure. Experimental, analytical, and computational techniques have matured to the point where systematic studies of materials with complex microstructures under shock loading and the associated failure mechanisms are feasible. This is enabled by more accurate diagnostics as well as characterization methods. As interest in complex materials grows, understanding and predicting the role of heterogeneities in determining the dynamic behavior becomes crucial. Early computational studies, hydrocodes, in particular, historically preclude any irregularities in the form of defects and impurities in the material microstructure for the sake of simplification and to retain the hydrodynamic conservation equations. Contemporary computational methods, notably molecular dynamics simulations, can overcome this limitation by incorporating inhomogeneities albeit at a much lower length and time scale. This review discusses literature that has focused on investigating the role of various imperfections in the shock and spall behavior, emphasizing mainly heterogeneities such as second-phase particles, inclusions, and voids under both shock compression and release. Pre-existing defects are found in most engineering materials, ranging from thermodynamically necessary vacancies, to interstitial and dislocation, to microstructural features such as inclusions, second phase particles, voids, grain boundaries, and triple junctions. This literature review explores the interaction of these heterogeneities under shock loading during compression and release. Systematic characterization of material heterogeneities before and after shock loading, along with direct measurements of Hugoniot elastic limit and spall strength, allows for more generalized theories to be formulated. Continuous improvement toward time-resolved, in situ experimental data strengthens the ability to elucidate upon results gathered from simulations and analytical models, thus improving the overall ability to understand and predict how materials behave under dynamic loading.