For a world like Minecraft where the large majority of cubes are static, in the few tests I've done, batched cubes will beat multimeshes... IF their hidden faces are culled, and even more if greedy meshing is applied to merge common faces.
Having many Multimeshes on screen will have trouble hiding occluded faces and cause overdraw. Vertex count will also be higher.
The advantage of Multimesh however, is being able to modify or move every cube much faster, because on the other hand, a batched mesh will need to be entirely rebuilt (at least in Godot). It's also easier to modify with a script, while a batched mesh will require a fast language like C++ or a compute shader.
In both cases, it's also a good idea to chunk the world at least by 32x32x32 to take advantage of frustum culling.
One thing I didnt try however: using multimesh, but exploiting the
Color component to store which side to occlude. Then in the vertex shader, discard vertices belonging to a side of the mesh. Sort of a hybrid approach. Random thought tho :p