From the /questions
doc:
...use the tagged parameter with a semi-colon delimited list of tags. This is an and contraint(sic), passing tagged=c;java will return only those questions with both tags...
(Emphasis added)
If you want questions that have either tag, use the /search
route (or /search/advanced
).
As for why the API sometimes differs from the website search, that has been asked a few times both here and elsewhere. For example, see Why is there a difference between "questions" and "search" in API?.