This occurs even in the masked textbox API demo.
On Page load the markup looks like this:
<span class="k-widget k-maskedtextbox" style="width: 100%;"> <input id="maskedtextbox" name="maskedtextbox" style="width: 100%" data-role="maskedtextbox" class="k-textbox" autocomplete="off"><span class="k-icon k-i-warning"></span></span><script>kendo.syncReady(function(){jQuery("#maskedtextbox").kendoMaskedTextBox({"mask":"(999) 000-0000","rules":{}});});</script>
The mask works.
If you click the Readonly button the markup changes to this:
<span class="k-widget k-maskedtextbox" style="width: 100%;"><input id="maskedtextbox" name="maskedtextbox" style="width: 100%" data-role="maskedtextbox" class="k-textbox" autocomplete="off" readonly="readonly"><span class="k-icon k-i-warning"></span></span><script>kendo.syncReady(function(){jQuery("#maskedtextbox").kendoMaskedTextBox({"mask":"(999) 000-0000","rules":{}});});</script>
The only apparent difference is the addition of the readonly attribute.
If I remove the readonly attribute. I can type in the textbox again, but it doesn't follow the mask.