Make sure you are inspecting your results correctly to know if the modifier worked correctly. Use multiple colors to inspect. All gray may create more work for you. In the outliner window turn off and on the eye icon. The eye icon affects 3D Viewport visibility for inspection.
Image above shows placement of unclosed hemisphere and modified cube. Corners have red balls for visibility discussion below.
In the image above the hemisphere is not really closed yet we played nicely and got the results we wanted as per the OP question.
In the image above we moved the blue hemisphere into a [exotic] position and we see [exotic] case where the boolean modified cube and hemisphere have coincident surfaces. The term [exotic] is yet to be defined. Difficult to see resulting Cube. Most of the Cube has disappeared. You can witness this interactively by moving the hemisphere left and right.
In the image above we see the surface remaining of the cube because the visibility of the hemisphere in blue has been set to false with the outliner window eye icon. You may or may not want this type of result. Yes it is a feature.
If your hemisphere is not closed it can cause the disappearing act. Use a fresh full sphere to compare. A closed sphere can be shaped into a well modeled closed nice hemisphere without deleting any vertices. The open hemisphere can cause a thin surface to be in the same location as the hemisphere and visually hidden if we are too casual in inspection effort. The boolean modifier may even try to make logically close a surface for you, but it is not wise to count on those intricacies. The boolean modifier may have complex behavior so you may find life easier if you do not create exotic cases.
Make sure both objects are closed volumes. Water Tight in loose terms.
Make your objects are temporarily closed if necessary. Perhaps the requirement of closed volume can be relaxed yet I problems occur close the meshes water tight.
Try 2 closed objects such as sphere and a cube. They are closed already when unedited. Water Tight in loose terms. Try the Boolean Subtract Modifier. This is to compare successful operations to unsuccessful ones.
Apply the modifier. Move the modified object to a new location to inspect or hide the target of the modifier.
Superstitious. I recently had to select the wrong type of Boolean to achieve the results I wanted. I had to select [intersect] but logically I would choose [union]. Troubling. I hope you do not have to do the same.