That style of fillin is meant for regular text, like in a "p". And in that context perhaps looks better if the textfillinstyle is underline or shade. But in regular text in a "p" we did not want to actually make a 2x5 array of fillin blanks. So it communicates what kind of thing is expected without actually showing the array.
Here in a table cell, something different could be done, but currently nothing is different compared with a fillin that's in regular text. My taste: if a fillin were the only element in a "cell", print nothing, not even an underline.
But that would not capture the desire to make a blank table cell that is taller than one line. And rows="2" is not meant to convey height, but rather how many inputs are expected in some array of fillins.
Depending on what your actual use case is, the following is or is not a hack. You could do like:
<cell>
<m><fillin fill="\begin{array}{c}XXXXX\\XXXXX\end{array}}/></m>
</cell>
I haven't tested to check this is up to date, but what is supposed to happen is that the @fill content gets wrapped in \phantom. And you end up with something the same size as what @fill would work out to be. Just note that in HTML, a user can peek inside the content of the \phantom, so you want to avoid giving away actual answers there.
And note that the fillin-math-style can differ from fillin-text-style.