In examples like the above, the mis-match is expected.
The difference is due to LUT-combining.
A count of primitive LUTs (Find Results) does not account for LUT-combining, whereas report_utilization does account for LUT-combining and as a result reports less.
The report_utilization result is the final actual LUT utilization.
In this example, there are 4 pairs of LUT4 which are combined into LUT6, so report_utilization reports 4+1=5 LUTs.
The LUTs that are optimized with LUT-combining have a "SOFT_HLUTNM" property.
get_property SOFT_HLUTNM [get_cells Componentx/DSP48_V6.DSP48X/U0/i_synth/i_synth_option.i_synth_model/i_op2/g0_b18]