As Pieter pointed out, it sounds like your Bitcoin Core is not shutting down cleanly when you turn off your computer. This could happen for example if the shutdown process does not wait for Bitcoin Core to shut down cleanly before killing it, or if the computer is just powered off immediately.
Bitcoin Core caches progress to the chainstate¹. The chainstate is only written to disk on (clean) shutdown or after running for 24 hours. If Bitcoin Core is shut down forcefully before that, it falls back to the chainstate it had at startup, losing all synchronization progress since starting.
Since block data gets written to disk as received, it will not have to retrieve the blocks again. Bitcoin Core will recreate the chainstate from the blocks on disk on next startup, and continue synchronization from that point.
Whether this is a case of unclean shutdowns could be verified by inspecting the debug.log
in your Bitcoin directory. If it is, you could manually close Bitcoin Core before shutting down your computer, or configure your computer to give programs more time to shut down to ensure that your synchronization progress is saved.
¹ A lot of the data that Bitcoin Core creates during synchronization is only written and read once before being discarding. While Bitcoin Core is running, caching this data and never writing the discarded data to disk translates to quicker validation.