Why is the test version specialized for rvalue argument not being used?
This is because the function argument std::forward<mytype>(stuff) that you're passing is an expression and an expression in C++ is never of some reference type. That is, the type of the function call argument std::forward<mytype>(stuff) is actually std::vector<std::string> and not std::vector<std::string>&&. In other words, T will be deduced as std::vector<std::string> and not std::vector<std::string>&&.
Basically, you've specialized the function template for the template argument std::vector<std::string>&& but T gets deduced to std::vector<std::string>. Thus, the specialization cannot be used. On the other hand, if you were to removed the && then the specialization will be called(see explanation at the end of the answer).
Lets look at a contrived example to clear this up:
Example 1
I am adding the following example to show that my above explanation is correct.
template <class T> void f(T)
{
    std::cout << __PRETTY_FUNCTION__ << std::endl;
}
void g() { 
    f((const int&)0);  //T will be deduced as int and not "const int" or even "const int&"
    f((int&&)0);       //T will be deduced as int and not "int&&"
}
int main()
{
    g();
    return 0;
}
Working demo.
Example 2
template<typename T>
void test(T item)        //#1
{
    std::cout<<"generic"<<std::endl;
}
template<>
void test(int&& vec)    //#2
{
    std::cout<<"Ok."<<std::endl;
}
int main()
{
    int stuff = 0;
    //---vvvvvvvvvvvvvvvvvvvvvvvv----------->the argument is an expression and is of type int instead of int&&
    test(std::forward<int>(stuff));         //calls #1
   
}
In the above example the expression std::forward<int>(stuff) is of type int and not int&&, therefore T is deduced as int(and not int&&). This means the generic version will be called.
removing && will make that happen
When you remove the &&, then this time you're explicitly specializing the function template for std::vector<std::string> and not std::vector<std::string>&&. This means that this time, the deduced T matches the template argument for which you've specialized the function template and so the specialization is called.