myTemplateTemplate expects the second template parameter is a template with one argument. myDefaultTemplate is a template with two arguments, and the second argument has def
From the standard (see 14.3.3 paragraph 1 - [temp.arg.template):
A template-argument for a template template-parameter shall be the name of a class template, expressed as id-expression. Only primary class templates are considered when matching the template template argument with the corresponding parameter; partial specializations are not considered even if their parameter lists match that of the template template parameter.
That means the template myDefaultTemplate
will be seen only as 2 arguments template. The default argument will not be considered.