Do bash (1):
(list) list is executed in a subshell environment (see COMMAND EXECU‐ TION ENVIRONMENT below). Variable assignments and builtin com‐ mands that affect the shell's environment do not remain in effect after the command completes. The return status is the exit status of list.
Simplesmente removendo os parênteses que você tem em torno desse bloco de código, você teria algo assim:
#!/bin/bash
a=0
for d in 'seq 1 7'
do
((a++))
echo $a
done
(também um pouco mais convencionalmente formatado)
o resultado é:
1
2
3
4
5
6
7