when you install something from an external url that cannot be versioned or that the content can change, docker cannot cache the command and need to execute it at every build.
In your case, the package is not redownloaded because of the mount, the package is present so no need to be redownloaded but the docker run line is steel executed.
(i'm not english native so i hope it is comprehensible)