WinMove has two forms:
WinMove, X, Y
WinMove, WinTitle, WinText, X, Y [, Width, Height, ExcludeTitle, ExcludeText]
For the first form, the documentation says that X can be an expression and, from the "Expressions" section of the documentation:
[v1.0.97+]: Array literal. If the open-bracket is not preceded by a value (or a sub-expression which yields a value), it is interpreted as the beginning of an array literal. For example, [a, b, c] is equivalent to Array(a, b, c) (a, b and c are variables).
That's my guess as to what's going on, that it thinks that you're using the first form because you appear to be defining an array, but you're not finishing that definition. Such a WinTitle probably works with most other Win* commands, but not WinMove unless you use expression form (as davebrny used).