Where paramaters of a custom function are coming from inside the loop?

The answer can be found in the documentation for get_the_title:

$post
(int|WP_Post) (Optional) Post ID or WP_Post object. Default is global $post.

If you don’t supply a post object or post ID, it defaults to using the global $post variable.

When you call the_post() within the loop, this populates the global $post variable with the data from the current post within that loop.

EDIT:

get_the_title gets the current post object:

$post = get_post( $post );

get_post then accesses the global $post if nothing was passed to it:

$post = $GLOBALS['post'];