It's about the color
You fool! You fell victim to one of the classic blunders - The most famous of which is "Never get involved in a land war in Asia" - but only slightly less well-known is this: "Never assume CMYK colors will render the same when previewed in RGB!"
Let's use an example below to show how this issue can arise and how to fix it. To be clear, when the file is printed it will print fine, this issue only affects the way color is rendered for preview, which is still pretty important.
Below you can download a sample file to follow along.
RGB File Preview
This is the version you sent your client right? Maybe you select the Smallest File size preset because you were going to send it through email. It looks perfect, your vector mask is cutting a perfect shape and all is well.
CMYK File Preview
This is what your client sees, this ghosted image bleeding through in the masked area. Understandably so, no one wants to approve this for print. Turns out there is an explanation.
The heart of the matter
The core of this issue is about how CMYK colors are converted to RGB for display on screens. Most Adobe apps intelligently do this conversion and do the best job of previewing a file for print. However many clients don't have Acrobat Reader installed, so we need to solve this.
It all stems from rich black vs black. As you can see below even though Rich Black does not contain 100% K (black ink) it is considered darker. Producing color with ink is a subtractive process, each ink color reflects back less light than it absorbs. If we combine many colors together, we'll absorb even more light making it looks even darker and richer than 100% black ink alone.
So how does this relate to masking?
As you can see here the mask is just a black and white image. Black is hidden, white is shown, anything in between is visible.
In a CMYK file (for print) the black area will just be plain black, 100% K. So when the conversion is done to RGB, the black is no longer RGB black, but something like a dark grey.
How can this be fixed?
We invert it.
Click the invert mask checkbox, then select your mask shape and change it's color to 100% K .
I'm not 100% sure how Rich Black would do, it may actually invert the problem entirely.
I don't like this solution, but sometimes you do what you have to do. I think Adobe could put some intelligence in the PDF export process when converting to RGB and CMYK especially relating the mask background color.