В зависимости от того, какие заголовки вы включили, существует следующее:
template<class T> complex<T> sin (const complex<T>&); // <complex>
template<class T> valarray<T> sin (const valarray<T>&); // <valarray>
float sin(float); // <cmath>
long double sin(long double); // <cmath>
Как вы можете видеть, включает шаблонов, хотя это на самом деле здесь не совсем уместно.
Вам просто нужно сообщить компилятору, какую [потенциальную] перегрузку вы хотите (вероятно, только из последних двух):
std::thread((float(*)(float))&std::sin, 2.9);