Fizz having an argument with Buzz
Two points:


echo $(something that already prints) is just redundant. This is simpler

source ./buzz.sh $i

There does not appear to be any need for two separate files. Put buzz in a function. Also, you are using a lot of subshells that are unnecessary (a). I'd stick with the more verbose but clearer if

buzz() {
    if (( $1 % 15 == 0 )); then
        echo 'FizzBuzz'
    elif (( $1 % 5 == 0 )); then
        echo 'Buzz'
    elif (( $1 % 3 == 0 )); then
        echo 'Fizz'
    fi
    echo $1
}


then

for i in $(seq $1); do buzz $i; done



a) if you want a grouping construct without the overhead of spawning a new shell, use braces:

{ echo foo; echo bar; echo baz; } | tac