I found why it behaves like that:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html#cross-field-analysis
It seems that having 'cross_fields', 'and' operator and different analyzers causes that all terms must match in a single field.