Basically, the class of the image is crucial to matlab when saving to file (and displaying images). Matlab assumes that the intensity range of a double image is floating point values in the range [0 1], even though a double array can store values outside this range. Anything above 1 is considered to be 1 (= white) anything below 0 is considered to be 0 (= black). By necessity, an image of class uint8 has integer intensity range [0 255] (since that's the range of values that can be store as 8-bit integer).
So, if you store images as double but with range [0 255] strange things will happen. As Chenchal has shown, you can fix that by converting your image to uint8 when you save. Another option would be to create it directly as uint8:
mask = zeros(1080, 1920, 'uint8');
That would also simplify the call to imshow to
since your image would now have the correct displayrange assumed by imshow for its class.