aren't we putting two strings (the variables first name and last name) inside one big string
Yes. And in this example that's not a hard thing to do. As you suggest, you could just do:
first_name = 'Chris'
last_name = 'Christie'
sentence = 'That is ' + first_name + ' ' + last_name
to concatenate the strings. But this quickly gets unwieldy. Because of all those quotes and operators it's difficult to see at a glance exactly what the final string is going to look like.
So many languages have come up with a way of having the variables part of the string itself. That way you can write the string a bit more naturally. For example, in Python you can also use "%-formatting":
sentence = 'That is %s %s' % (first_name, last_name)
That's a bit better, because you can easily see where the variables are going to go in the string. But it gets messy when you have a lot of substitutions to do, because you need to match the order of the %'s with the order of the list. What if we could just put the variables in the string itself? Well, that's what f-strings do.
So f-strings allow you to see just where the variables are going to end up in the string. As you point out, the notation can look a little odd because you end up inserting strings as variables into a string, but notations are just that - notations. You get a bit of expressiveness at the cost of a bit of obscureness.