Videos
Good practice in software engineerIng is to limit the scope of names to where they are used. If testvar is declared outside of main, then it is visible to code outside main. This exposes it to bugs in which some other code uses testvar when it was intended to use some other object (either another object with a different name that was mistyped or an object with the same name, but a different instance of it was desired). Additionally, because it is declared with int testvar; and not static int testvar;, it will be linked with other objects named testvar in other modules. This is a serious problem—it happens that one author of some routines used some name like AmountOfMemory for their own purposes and another author of other routines used the same name for their own purposes, and both pieces of code work separately, but, when linked into the same program, they break. For this reason, good code avoids global variables.
If testvar is declared inside main, none of those errors can occur. The probability of writing a good program is increased. Thus, if testvar is not needed (by name) outside of main, declaring it inside main is preferable.
There is also an issue of lifetime. Similarly to scope (where a name is visible), we prefer to limit lifetime (when an object exists). In the case of an object defined inside main, its lifetime is effectively the same as an object declared outside of any function—it will exist for the duration of program execution. So lifetime is not a great concern here. However, there is a situation in which it is. In C, it is permissible to call main inside the function. This is rarely used. However, if it is used and if testvar is defined outside main, there will be only one instance of it, and all executions of main will share them. If testvar is defined inside main, each execution of main will have its own instance of testvar, separate from the others.
Another difference between objects defined inside functions and those defined outside functions is that C automatically initializes objects defined outside functions to zero by default. This however would not affect the choice of where to define the object as an explicit initialization can be provided as desired.
"While I know what's the difference between local and global variables I just can't understand if it's important at all"
For me, when learning C, I felt like I didn't really understand the difference between local and global variables, until I understood why it's important.
Eric Postpischil's answer about scope and lifetime says it all. It's not a mere difference in how and where you can use the variables; it's the broader implications about what can happen because of that access.
So don't think in terms of "if I am going only to use a variable inside main()"; think in terms of encapsulation, modularity, interfaces, and shared code. I would go so far as to suggest never using global variables; any time you are tempted to do so, it will be worth the effort to find another way to accomplish what you are trying to do. Your future self will thank you for solid programming habits you foster now.