Because of the cast and the varargs in Arrays.asList, your array is treated as an array of type Object and size one, with element 0 being the string array. This one element is then added to the Vector. Without the cast, the varargs takes the string array as it is, and adds each string separately being added to the Vector.
You could have noticed this if you had used generics on the Vector. Using Vector<String> would have failed because Arrays.asList would have returned List<Object> with the cast. Without the cast it would be List<String>.