As far as I saw the shower is a very inconsistent building. 70% of the time dupe goes inside, spend a few moments there and then exits shower, still with "grimy" modifier on him (I may have messed up the exact name - it's the one tied to shower as opposed to "dirty hands"). But the remaining 30% it works just fine - dupes spent some time (not just a few moments) and exit without "dirty" modifier.
At all times the shower had both water intake and water outtake was free, so I think it may be some priority thing - they go in, but the task "shower" isn't fixed like visit to the toilet is.
Or "dirty" modifier is actually have multiple instances - so dupe need multiple showers to get rid of it completely.
Use the shower building with a base of >10dupes and lot of pending tasks.