With Rakudo commit we get the same output on MoarVM and JVM:
$ ./perl6-j -e 'sub aa (Mu:D $a) { }; aa(Int)'
Parameter '$a' requires an instance of type Mu, but a type object was passed.
Did you forget a .new?
in sub aa at -e line 1
in block <unit> at -e line 1
$ ./perl6-j -e 'sub aa (Mu:U $a) { }; aa(3)'
Parameter '$a' requires a type object of type Mu, but an object instance was
passed. Did you forget a 'multi'?
in sub aa at -e line 1
in block <unit> at -e line 1
I'm closing this ticket as 'resolved'.