The crux of the problem is here:
string dayOfWeek(int day);
using namespace std;
The using is after code that depends on it, so the compiler goes looking for string and can't find it. It doesn't go looking for std::string because it hasn't been told to yet.
You could move using up a few lines, but for the many reasons covered in  the answers to Why is "using namespace std" considered bad practice? and a few not covered, you're probably better off not putting 
using namespace std;
in your code at all. Prefix the std:: explicitly and you can avoid a litany of nasty surprises.
I also recommend following @πάνταῥεῖ example with where the function was placed. Forward declaring and then declaring gives you two places to have to change code and one more place to have a bug. Declaring the function ahead where it will be used mean you only ever have to change one declaration.
Putting it all together with a few other small tweaks:
#include <string>
#include <iostream>
std::string dayOfWeek(int day)
{
    switch (day) // for stuff like this, I like a switch. I find it looks nicer.
    {
        case 0:
            return "SUNDAY";
        case 1:
            return "MONDAY";
        case 2:
            return "TUESDAY";
        case 3:
            return "WEDNESDAY";
        case 4:
            return "THURSDAY";
        case 5:
            return "FRIDAY";
        case 6:
            return "SATURDAY";
        default:
            return "No such day"; // functions must always return something. 
                                  // in this case what will cout print if you 
                                  // don't return a string? Don't know?
                                  // Don't feel bad. Neither do I.
                                  // Welcome to Undefined Behaviour
    }
 }
int main()
{
    int day; //this was missing
    std::cout << "Please enter a day of week (0 for Sunday, 1 for Monday, etc): ";
    std::cin >> day;
    std::cout << "The name of the day of the week is: " << dayOfWeek(day) << std::endl;
}
There's one other trick you can use to get rid of the if or switch entirely
#include <string>
#include <iostream>
// define an array of days of the week to print. const means dayOfWeek cannot be changed
const std::string dayOfWeek[] = 
{
    "SUNDAY",
    "MONDAY",
    "TUESDAY",
    "WEDNESDAY",
    "THURSDAY",
    "FRIDAY",
    "SATURDAY"
 };
int main()
{
    unsigned int day; 
    //Note unsigned int. Negative numbers are now disallowed
    std::cout << "Please enter a day of week (0 for Sunday, 1 for Monday, etc): ";
    // keep looping until user provides a good number
    while (!(std::cin >> day) // user MUST input a number
           || day > 6) // number is a usable number
    {
        std::cin.clear(); // clean up bad input
        std::cout << "Please enter a day of week (0 for Sunday, 1 for Monday, etc): ";
    }
    // since we know day is a usable (0..6) number we can read the day out of the array   
    std::cout << "The name of the day of the week is: " << dayOfWeek[day] << std::endl;
}