The difference between them is that [[ ]] is used to access a component in a list or matrix whereas [ ] is used to access a single element in a matrix or array.
Let me explain with an example of the same.
I created a list, matrix to create a new list consisting of a few numbers, list, matrix.
Now ill access elements using [[ ]] and [ ] below.
In the above image list1[] and list1 would fetch the same element, but when you want to get a single element of a list part then [ ] is used like above.
A whole matrix can be accessed using [] or  in a whole but to access sub-elements in a list member, we use [ ] such as an element in a matrix within a list as above.