Brachylog, 5252 47 bytes
∧"Brachylog";"fizz","buzz","'ave∧"Brachylog
fizz
buzz
'ave a banana";banana"ṇ;?⟨a₁h⟩b~ṇ
The predicate fails on inputs on which it should "terminate". If outputting an unbound variable is more desirable, +2 bytes for +2 bytes.∨
; if an empty string is necessary, +1 on top of that for +1 on top of thatẸ
.