There are two ways to expand the capacity of a zpool: replace every disk with larger ones or add vdevs to the pool. It is good to practice these scenarios when your dataset is newly created and not storing critical data yet.
Replace each disk
ZFS can use files instead of physical disks and I will be using them for demonstration purposes. Starting with two files in a mirrored vdev configuration, it is possible to increase the total storage available to the pool by replacing each of the files with larger files.
sudo zpool create testpool mirror /home/gary/file.1 /home/gary/file.2
sudo zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
testpool 992M 50K 992M - 0% 0% 1.00x ONLINE -
Create two larger files to be used as replacements:
dd if=/dev/zero of=/home/gary/file.3 bs=1024k count=2000
dd if=/dev/zero of=/home/gary/file.4 bs=1024k count=2000
Replace the old files:
sudo zpool replace testpool /home/gary/file.1 /home/gary/file.3
sudo zpool replace testpool /home/gary/file.2 /home/gary/file.4
Update the configuration:
sudo zpool set autoexpand=off testpool
sudo zpool set autoexpand=on testpool
sudo zpool online -e testpool /home/gary/file.3
sudo zpool online -e testpool /home/gary/file.4
Check the pool:
sudo zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
testpool 1.94G 122K 1.94G - 0% 0% 1.00x ONLINE -
The pool is now showing double the capacity at 1.94G.
Add more vdevs to the pool
Starting back at the original setup:
sudo zpool destroy testpool
sudo zpool create testpool mirror /home/gary/file.1 /home/gary/file.2
sudo zpool status
pool: testpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
testpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/home/gary/file.1 ONLINE 0 0 0
/home/gary/file.2 ONLINE 0 0 0
errors: No known data errors
Add a new vdev with the other 2GB files:
sudo zpool add testpool mirror /home/gary/file.3 /home/gary/file.4
sudo zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
testpool 2.91G 100K 2.91G - 0% 0% 1.00x ONLINE -
sudo zpool status
pool: testpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
testpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/home/gary/file.1 ONLINE 0 0 0
/home/gary/file.2 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
/home/gary/file.3 ONLINE 0 0 0
/home/gary/file.4 ONLINE 0 0 0
errors: No known data errors
The pool is now showing 992M (mirror-0) + 1.94G (mirror-1) = 2.91G (testpool)

Previous (4)