A shuffle is defined (at least in my class) as:
Let $x = x_1x_2 \cdots x_k$ and $y = y_1 y_2 \cdots y_k$ be words over the same alphabet $\Sigma$. We say that $x$ is a shuffle of $y$ (denoted $x \sim y$) if there exists a permutation $\pi$ of $\{1, 2, \ldots , k\}$ such that $x_{\pi(j)} = y_j$ for $j = 1, 2, \ldots, k$.
Isn't this simply saying that $x \sim y$ if $y$ is a permutation of $x$?
I'm asking because the way the question is asked, it would seem that I need to actually use a $\pi$ to check whether $x \sim y$, but wouldn't such a $\pi$ always exist if $y$ is a permutation of $x$?
I need to describe a Turing machine that recognizes the language $S = \{x,y \mid x \sim y \}$, and the question makes it sound like I need to use a TM that creates permutations over $1$ to $k$ given $k$, and that it's hard to make a polynomial time TM for recognizing $S$. But if it's just permutations, then I have a TM that decides it in $O(n^2)$ time.
You're right, but it also looks like you're overthinking it:
First: As has already been said in comments, "permutation" has subtly different meanings in different fields. In combinatorics it is common to use the word "permutation" for just an arrangement of things in a linear order, whereas in abstract algebra, a "permutation" is almost always a bijective function from a set -- usually $\{1,2,3,\ldots,n\}$ to itself.
These two concepts are closely related, of course -- a permutation-as-function can describe how to move things around to pass from one permutation-as-arrangement to another, and on the other hand once you decide on a "standard" arrangement of things, you can describe every arrangement by giving the permutation-as-function that will make the standard arrangement into the one you're thinking of. (This will be a unique description of the arrangement if and only if the things you arrange are all different, which is not necessarily the case for your application here).
The exercise seems to be written by or for people who are more comfortable with the abstract-algebra sense of "permuation", and therefore it uses more words to describe the concept that in combinatorics we would just call "one string is a permutation of the other".
Second: Remember that the success criterion for your Turing machine is just that it must give the correct answer. How it finds that answer is up to you. Even though the definition of the problem is in term of quantifying over all permutations, there's no requirement that your machine needs to find the answer by checking the permutations one by one. If you have a faster way to reach an answer that you can prove will be be the same answer as the definition leads to, then it is completely allowed to use the smarter way.