Use of these two types of arrays, once allocated, wouldn't be very different. But there are a lot of differences in implementation and allocation.
Allocation It is simpler to allocate a multidimensional array. Simply:
new int[4, 2, 3];
For a jagged array, you'd need a lot more steps and a loop
Implementation A multidimensional is essentially stored in a single block of memory (or memory address space). With a jagged array, every sub-array is potentially in a different part of memory. This can have impact on caching and performance but the bigger hit is you get N indirections to access a single item, or a lookup for each dimension. For a multidimensional array, given the N indexes, the memory location can be determined arithmetically by the N indices. For a jagged array, you need a memory read for each index taking you to a new block of memory. A jagged array also has a lot more overhead storing the dimensions of each subarray, although it is pretty insignificant.
Usage for usage, really, the difference is more edge case checking. You can check the dimensions of a multidimensional array prior to accessing it whether the indices are within bounds. For a jagged array, to avoid throwing exceptions, you'd need to access each dimension one at a time to check the boundaries.
In other words, use a multidimensional array in this case. If you need a jagged array or it makes sense for you data model, then use it, but it is more complicated.