В том, что скрипты greasemonkey исполняются в песочнице. Надо так:
// ==UserScript==
// @name YouTube
// @namespace [url]https://www.youtube.com[/url]
// @include [url]https://www.youtube.com/watch?v=*[/url]
// @version 1
// @grant none
// ==/UserScript==
window.onYouTubePlayerReady = function(playerId)
{
alert('hello');
}