Apparentemente dovevo fare GRANT EXECUTE ON FUNCTION invece di GRANT EXECUTE ON PROCEDURE .
Penseresti che se GRANT EXECUTE ON PROCEDURE ha funzionato solo su PROCEDURE che il messaggio di errore dovrebbe dire "Codice errore:1305. PROCEDURE businessDayDiff non esiste" invece di "FUNZIONE o PROCEDURA"...