For this, we need the default color function used by MatrixPlot
, which we can get here:
cf = Blend[{{0., RGBColor[0.260487, 0.356, 0.891569]}, {0.166667,
RGBColor[0.230198, 0.499962, 0.848188]}, {0.333333,
RGBColor[0.392401, 0.658762, 0.797589]}, {0.499999,
RGBColor[0.964837, 0.982332, 0.98988]}, {0.5,
RGBColor[1, 1, 1]}, {0.500001,
RGBColor[0.95735, 0.957281, 0.896269]}, {0.666667,
RGBColor[0.913252, 0.790646, 0.462837]}, {0.833333,
RGBColor[0.860243, 0.558831, 0.00695811]}, {1.,
RGBColor[1., 0.42, 0.]}}, #1] &;
Next, we need to rescale it in the same way that MatrixPlot
rescales it. Namely, so that 0.5 is at 0.
cfScaled = cf@Rescale[#, {0, 1}, {0.5, 1}] &;
Now we can get the plot like this:
MatrixPlot[
RandomReal[0.2, {10, 10}],
PlotLegends -> BarLegend[{Automatic, {0, 1}}],
ColorFunction -> cfScaled,
ColorFunctionScaling -> False
]

Comments:
ColorFunctionScaling
is turned off because otherwise your values, which are approximately between 0 and 0.2, would be rescaled to lie between 0 and 1 before being passed to the color function.
cfScaled
has to be an anonymous function, otherwise it won't work because BarLegend
does not work with named functions. Optionally, one can also use a color scheme from ColorData
such as ColorFunction -> ColorData["AvocadoColors"]
.