3dmaskave reports each sub-bricks result separately. 3dBrickstat works on a whole dataset or, for medians and percentiles, only a single sub-brick. One could script 3dBrickStat to give similar results though.
There are some other differences one can see by looking at the options for each. 3dmaskave has the mrange and drange options, but these can also be done with the input dataset specifiers for the data range. The options -sigma, -dump, -udump, -indump, -slices are not available in 3dBrickStat.
3dBrickStat has options for the signedness of the data that are not available in 3dmaskave (-positive, -negative, -non-zero, -zero, -nan,...).
3dROIstats also can be used for similar results and separating results for each mask value. Again, this program doesn't carry all of the options of the other two, but there is overlap.
In any case, most of these options could be easily added to the programs, and we take requests.