Greetings todd.b,
I've run across this myself, although with a different host (Bluehost).
I believe that the culprit is the following RewriteCond, which is saying, as I read it, "If the host name does not start with 'site.com'" execute the RewriteRule that follows. In more typical use, this would redirect www.site.com -> site.com.
RewriteCond %{HTTP_HOST} !^site\.com [NC]
Because your host name when you access via subdomain indeed does not start with "site.com" (it starts with "subdomain.site.com", it's processing the redirect, which you don't want in the case of accesses to your subdomain.
In my use case where I've encountered this, I had site.com set to redirect to www.site.com, so my solution wouldn't work for you, as you're doing the reverse, but the following RewriteCond may do the trick for you. I've not tested it, so your mileage may vary.
RewriteCond %{HTTP_HOST} !^(subdomain\.site|site)\.com [NC]
The alternate RewriteCond is saying, "if the host name does not start with subdomain.site.com or just plain site.com, perform the redirect". In theory, this may let you skip that redirect and just go to your subdomain. In the case of accesses via "www.site.com" (or "bla.site.com" for that matter) the redirect should still happen.
As to the wisdom of the host processing the .htaccess in the "main" domain's root when accessing a subdomain, that's another story.