Nothing can be done about that. That PNG image is designed to render
against a light background. There is no reasonable way for the viewer to
know that.
It will be because Qt has to pick some color to use when rendering the transparent pixels in the image. It presumably chooses the default background color, which is white in light mode and black in dark mode The image viewer does not blend the image with gray, the gray is there to improve color perception in the image by surrounding it with a neutral color.
One of the semi-transparent PNGs in this ePub.