There are a couple of things in your setup that I would do differently, and I'll try to outline this in my answer. I can't guarantee it will work, but it's how I have my containers set up, so hopefully it can help.
First, I wouldn't mount my data disk with uid and gid attributes. I would mount with default attributes, like this:
UUID=MY_UUID /home/user/my_mount_point    auto umask=022,defaults 0 1
(From this point on, I will use /home/user/my_mount_point as a reference from where your disk is mounted.)
Secondly, I don't understand your volume reference in the docker-compose.yml. I would have it like this:
    volumes:
      - /home/user/my_mount_point/db-volume-folder/db-one:/var/lib/mysql
Note that I would always use an absolute path in the docker-compose.yml.
Also, the ownership should match those of the container running, so the folder db-one should be owned by root.
myUser@ubuntu:~/my_mount_point/db-volume-folder$
drwxr-xr-x 3 root root 4028276 Jul 26 04:47 db-one
Note that the folder name db-one should match the last folder on the left side in the volume mount path - this is the folder where the permissions matter.
Finally, as you have noted, docker-compose also supports that you specify which user the container should run as. So I believe you could change the user, and then change the ownership accordingly.
So if you change the user like this:
version: "3.7"
services:
  my_sql_db:
    container_name: my_sql_db
    user: myUser
And then the folder permissions to match:
myUser@ubuntu:~/my_mount_point/db-volume-folder$
drwxr-xr-x 3 myUser myUser 4028276 Jul 26 04:47 db-one
I hope some of these instructions will work for you - please let us know if it does.
EDIT:
I just tested the MySql container with the following docker-compose.yml:
version: "3.7"
services:
  my_sql_db:
    container_name: my_sql_db
    user: root
    image: mysql/mysql-server:latest
    ports:
      - "1533:3306"
    environment:
      MYSQL_ROOT_PASSWORD: topsecret
      MYSQL_USER: mysqluser
      MYSQL_PASSWORD: mysqlpassword
    volumes:
      - /mnt/zfs/docker-data/mysql-test/db-one:/var/lib/mysql
    restart: always
This is the contents of the folder /mnt/zfs/docker-data/mysql-test:
/mnt/zfs/docker-data/mysql-test$ ls -la
total 7
drwxr-xr-x  3 root root   4 Aug  1 22:02 .
drwxr-xr-x 22 root root  22 Aug  1 21:47 ..
drwxr-xr-x  6   27 sudo  30 Aug  1 21:59 db-one
-rw-r--r--  1 root root 374 Aug  1 21:58 docker-compose.yml
In this way, the container comes up successfully. It appears the container itself changes ownership to 27:sudo (I guess these are default values).
If I change the user in docker-compose.yml to myuser:myuser and also change permissions on the folder db-one to myuser:myuser, I get this error when trying to start the container:
ERROR: for my_sql_db  Cannot start service my_sql_db: unable to find user myuser: no matching entries in passwd file
So it seems the problem is between matching users, and not filesystem ownership. And if you get another error, its probably something else than filesystem ownership - see my link in comments.