service operates on the files in /etc/init.d and was used in conjunction with the old init system. systemctl operates on the files in /lib/systemd. If there is a file for your service in /lib/systemd it will use that first and if not it will fall back to the file in /etc/init.d. Also If you are using OS like ubuntu-14.04 only service command will be available, as systemd is introduced recently to the linux world.
So if systemctl is available ,it will be better to use it
see: stackoverflow -> https://bit.ly/3aaJYhz
init.d is deamon which is the first process of the Linux system. Then other processes, services, daemons, and threads are started by init. So init.d is a configuration database for the init process.
A daemon (also known as background processes) is a Linux or UNIX program that runs in the background. Almost all daemons have names that end with the letter "d". For example, httpd the daemon that handles the Apache server, or, sshd which handles SSH remote access connections. Linux often start daemons at boot time. Shell scripts stored in /etc/init.d directory are used to start and stop daemons.
see: itsfoss_daemons
service "service name" start/stop/status/restart
In this simple manner, we are using service management in Linux but what actually happens and how it actually works in the background, is that all these service works on several scripts and these scripts are stored in /etc/init.d location.
If somehow init daemon could not start, no process will be started and the system will reach a stage called “Kernel Panic“.