A solution using the boolean modifier:
Beforehand, for the boolean to work, make sure your original model has no holes.
You can fix it yourself manually, or use an automatic remesh like the modifier or the sculpt mode's voxel remesh in the sidebar:

Also, make sure its scale is applied via ⎈ CtrlA >> Apply Scale.
- add a cube, in the sidebar, set its dimension to 1:1:1 meters.
- Apply the scale via ⎈ CtrlA >> Apply Scale
- (optional): for visibility's sake, go in Properties editor > Object tab > Viewport display, set Display As : Bounds.
- Add an Array modifier, change the relative offset so that the new cubes have a small spacing (like 1.001, it's required for the boolean to work)
- Hit ⇧ ShiftD twice while hovering the modifier with your cursor so to duplicate it twice, change the direction on the new modifiers to cover all three axes. Add as many repetitions needed to cover your original model with cubes.
- add a boolean modifier to your original model, set it to Intersect.

If you want each cube to be its own object:
- Hit ⎈ CtrlA on the boolean modifier to apply it
- Select your original model, then switch to edit mode with ↹ Tab
- select all with A and hit P > Seperate by loose parts.
- Back in object mode, select all the parts,
RMB > Set Origin > Origin to geometry.
